Edit a Record in a CSV/txt File Java
HTML-код
- Опубликовано: 22 авг 2024
- Edit a Record in a CSV/txt file Java
Hello there viewer, welcome back and today I shall be showing you a simple way to edit records using Java for a txt or CSV or any file type. All we do is write every record we want to keep the same to another file and the new details for the record we want to edit to the new file. We delete the old file and rename the new file to whatever the old one was called.
Why not subscribe to keep notified when I upload so you can get that A?
tinyurl.com/Su...
Social media:
Instagram: / mcod1999
Twitter: / mcod1999
ManDownGG: www.mandown.pro/ - Le pro Esport team
Edit a Record in a CSV/txt file Java
For people having to edit this file more than once, doing it with pw.println(...) causes the ending of each line to have "
". Meaning that whenever you go through it again, your last element on that line will have a "
" at the end, causing a new line to appear, and also causing errors if you're trying to use that variable as something besides a string, like a int.
In this case, age would be "36
", "23
", or whatever you gave age, instead of just the number.
There's a simple solution however. Simply use pw.print(... + "
"). This eliminates the "
" and solves all the problems I listed above.
So if we're using the example from the video, it'd be:
pw.print(ID + "," + name + "," + age + "
");
ooh, merci!
A video that can help me after 2 years now and more years to come to help others. Great work.
OMG ,I can't believe such a great video has only 15 likes! and this wonderful channel has only 99 subscribers. Keep going,
I am sure u would cross 1M subscribers one day.
Thanks a lot, Ishan. You will have no idea how much it means to me hearing those words. Also, we are now at 100 subs now so we just need to cube that number to get to one million now. I hope you stay tuned for more!
it's 370 likes now
he's not that close yet, but surely someday...
@@maxodidily 3000 Subs now!
May 14 2020, your tutorials are very informative and on point. This is the only tutorial that worked for me. Thanks Max
Hey Max! This is such an awesome video! I just wanted to know if it was possible to edit just a single cell rather than changing the entire row each time I want to edit. Thanks!!!
Thx man, from iran with love :) whish you the best
Your words make my day! I wish you the best too.
Thank you very much you save my life :D .
File.renameTo()
and file.delete() is not working for meee
same here. so how to solve? any ideas?
ARE YOU DRUNK?!
But thanks, I learned
I have troubles deleting the old file and renaming the new file as File.delete() and File.renameTo() are ignored. The code works GREAT (THANK YOU SO MUCH!) but it does not delete or rename the file. Again, thank you for your helpful videos!
same problem here
Did you know how to solving?
Really helpful bro thanks a lot ....
it runs but but it doesnt delete the temp file and doesnt update file
Hey man, great video, i followed everything in order to do my code, but since im using a csv file, somehow the file is not being deleted nor changed, i don't know if the swing affects something. the temp.csv is being created correctly but the old file isn't being deleted and the temp isn't being renamed, i don't know if you will ever read this but yolo. Thanks for the video
same.
thanks so much for sharing, it's really useful
what would be your solution if one of the items( x.next()) is a double but the rest are a string?
Thank you very much for this good, beautiful professional work
Your kind words have made my day.
@@maxodidily It is my pleasure to thank everyone who teaches and helps people .. I wish you happy times
How to keep the alignment same as old file..plz answer
Thanks dude. U da best
You are great man
Hi Max,
This is a awesome video.
I have one ques?
How can I use for a csv file and not a text file
Change the filename from "filename.txt" to "filename.csv".
@@maxodidily Thanks max.
I will try and will let you know.
Anyways, the session was very helpfull to me.
Thanks man
Is it possible without changing? i mean can't we directly edit the csv file? I am looking to add a new record in an already existing csv file.
This is great code, but my problem is I can't just use Strings. What if you use different data types?
Hello, it the thumbs up guy again. I have a question,
isn't this ressources consuming if it a dictionary file for example ? not to mention if the file is also constantly modified by other methods !?
Good question, so yes, this can be resource demanding if used in a big database system. For small databases, this is fine. This tutorial was aimed at A-Level students and this is enough for A Levels. If I were to code a bigger database I would use hashing. I shall be covering this in the near future.
@@maxodidily thank you, looking forward for the hashing tutorial. keep the good work
How do you stop it from starting a new line in the text file after you've written what you've written?
wait, why would you make a temporary file when you could just add the stuff to A string array?
that way it would be a lot easier...
You can use an Array if you like. I used a temp file as I wanted to keep this video in line with the WJEC Computer Science A-Level syllabus where the theory states a temp file is created, the old file is deleted and the temp file is renamed to the original file.
Hi mate, I’m getting NoSuchElementException with this and can’t figure out why, any ideas?
Hi there, may I ask why mine will keep adding a blank line in eachline?
nyc explanation
Nevermind. Nice video!
Could you send me your code via hastebin?
@@maxodidily I wrote the data without comas so it didn't write anything
@@user-kl2cp5zh4c I'm glad you resolved your issue!
Thank you very much
Hi Max, great video. I'm just having a little trouble when the program loops through the code to find and edit the desired values. It finds and changes the values fine but the program doesn't write the remaining values in the file (the other rows)
I am looking to add a new record in an already existing csv file what will be the logic ? And Input from console.
simple i love it
Thanks for the positive feedback!
Having issues with file.delete() returning false. Any way to fix it?
What if i want to append something in a line of records?
You deserve my sub!!!
Ty, it feels good knowing I earnt a subscription!
my file is not deleted and the updated data remains in temp fil....could u please help????
Thanks bro, it is useful. But can i know why the rename and delete function are not working by using the same code with you?
the main issue is cannot delete or rename the Main text file. So temporary file will not replace the Main file.
do u found solution for this? I'm having the same problem. data is copied to temp.txt but didn't rename to records.txt
Could you send your code via hastebin?
Thank you very much for replying my comment
But i found a way which is overwrite the original file from temporary file by using the same method above
It should be work also
@@jackpang9909 I'm glad you have resolved the issue. If you have any other issues, don't hesitate to ask about it!
@@maxodidily hello bro, im havinf the same problem as JACK PANG and i couldnt find a solution. Can you help me with it?
Does this work with ";" instead of "," too?
gracias amigo
i cannot delete the file when export file and import file
SIr, i wrote the code but not working properly. No error message is being displayed. if you don't mind, could you give me any suggestion.
Could you send the code via hastebin or pastebin please
thanks
Nice video bro, help me a Lot.
How can I copy from text file to object type arraylist?
Like 1223,Bilton,23 to 1223 Billton 23
You go through the txt file, putting every line in a String (use a String[ ] for that), and then use the String.split( " , " ) to split the lines at the comma.
Hi, everything seems to run fine except every time I run the program, it keeps creating a new line empty space on the file. I've copied your code and it's still happening? Do you know what's causing this? Thanks.
if(item.equals(editID)) {
pw.print(newID + "," + newName + "," + newAge + "
");
}
else {
pw.print(ID+ "," + name + "," + age + "
");
}
use pw.print not pw.println and add a "
" in the print statement...Answer is above
@@brentgallagher3603 Oh my gosh, thanks!! Was looking for the solution to this problem, and your answer helps me!
I am looking to add a new record in an already existing csv file what will be the logic ? And Input from console.
This tutorial will show you how to add a record to a csv file: ruclips.net/video/lp0xQXUEw-k/видео.html As for getting input, use the Java Scanner class and assign input it receives to a string.
Using a windows and linux machine both, this code works for me in linux perfectly. but in windows the file does not delete at any condition!! :( can you teach me any other method?
Firstly, I am really happy that the code works on Linux and am sorry it isn't working on Windows. Here is something you may want to have a look at, it aims to accomplish a similar thing: stackoverflow.com/questions/20039980/java-replace-line-in-text-file Also may I see the code so I can see if it works on my Windows machine?
for windows try to use java.nio.file.Files.delete(oldfile.toPath());
If i do not close all my filereader and filewriter will that stop the file from deleting and renaming ?
I'll be honest, I'm not 100% sure on that, I just close everything as it is good practice and reduces resources used. Maybe try your code but without closing the filereader and filewriter. I'm sorry I couldn't give u an answer to this good question.
Max, help me.. The old file not deleting , therefore at the end of the project i have 2 different file exist
Could you send me your code via hastebin or pastebin please.
good
Hi
Max O'Didily , If I created a CSV file how to create header for that CSV.
Just add a record to the top of the file which just consists of headers fur your fields.
I tried the code, but instead of setting the new information to a set amount, I made a scanner that allowed the user to input what they want to change and then that was inputed into the newID for example. It doesn't work. Any help?
Could you send me the code via hastebin or pastebin please?
I am looking to add a new record in an already existing csv file what will be the logic ? And also Input should be from console.
That's what I tried to do but did not work. Do you still have your coding for it?
Hello,I have follow your code and i have problem with update data. When i update it.The "oldFile" not delete and "Temp file" is also not rename too. Can you guide me please?. Thanks.
same.
Same here
I am looking to add a new record in an already existing csv file what will be the logic ? And Input from console.
Curly brackets don’t go on a new line, and there’s always a space after a comma.
but they do though
meep not according to official java style. If you put them on a new line at a good college, you’d get points marked off. Java has a code style, you can’t change it with you bad habits.
Dont you need to do Scanner x = new Scanner(new File(filepath));
That way also works just as well.
why do we use this as delimiter [,
] i don't understand that concept
The comma is because we want every field to be separated by a comma, we also use
as that means a new line.
sir, thsi code is working gud for txt bt i gotta edit the csv file ..it shows no changes in that..please help
There should be no issues with this code being used on a .csv file. Could you send your code via hastebin, please?
I am looking to add a new record in an already existing csv file what will be the logic ? And Input should be from console.
FileWriter(blablabla) is underlined in red... only solution proposed: create a new class FileWriter... why?
Could you send me your code via hastebin or pastebin please?
what if you only want to change the name and the rest are the same? :(
If you only want to change one field, you could do 'pw.println(ID + "," + newName + "," + age);' Basically, if you ever want to keep something the same you just re-write the value that existed in the original file.
the link is not available, plz update
WOW
Incredible!
could this code work in an android application in android studio
Indeed it can.
why is it printing unorganized
Sir after running this code in my system it is showing error..... i can't understand what is the Exact problem....Sir plzz tell me the solution. Thanks in advance.
What is the error message you are receiving?
@@maxodidily Actually sir catch block is executing...And it is printing error.
Could you send me your code please?
I am looking to add a new record in an already existing csv file what will be the logic ? And Input should be from console.
if your editTerm is the age it will not change the record
Could you send your code via hastebin please?
problem solved sorry for bothering
No problem, it's never a bother if anyone asks a question. May I ask how you resolved your issue?
Sir nosuchelementexception occur why
Could you send your code via hastebin or pastebin please
@@maxodidily sir we don't know how to use
Paste your code into the giant text box here: pastebin.com/ After that, click the 'create new paste' button. After your are loaded to a new page, copy what is in the url bar on your web browser and paste the link wherever you wish to share your pastebin link.
@@maxodidily ok sir
@@maxodidily pastebin.com/zRSLwavW here it is sir
this is not working
What issue are you having?
also code doesn't work :")
What issue have you encountered?
CAN SOMEONE PLEASE HELP, I DID EXACTLY AS THE VIDEO BUT IT SHOWS java.util.NoSuchElementException
BTW GREAT VIDEOS MAN, HELPED ALOT
public static void editRecord(String filepath, String editTerm, String newFname, String newSname, String newEmail,String newAddress, String newPhone)
{
String tempFile = "temp.txt";
File oldFile = new File(filepath);
File newFile = new File(tempFile);
String fname = ""; String sname = ""; String email = ""; String address = ""; String phone = "";
try{
FileWriter fw = new FileWriter(tempFile, true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
x = new Scanner(new File(filepath));
x.useDelimiter("[\t
]");
while(x.hasNext()){
fname = x.next();
sname = x.next();
email = x.next();
address = x.next();
phone = x.next();
if(fname.equals(editTerm)){
pw.println(newFname + "\t" + newSname + "\t" + newEmail + "\t" + newAddress + "\t" + newPhone);
}else{
pw.println(fname + "\t" + sname + "\t" + email + "\t" + address + "\t" + phone);
}
}
x.close();
pw.flush();
pw.close();
oldFile.delete();
File dump = new File(filepath);
newFile.renameTo(dump);
}catch(Exception e){
System.out.println(e);
}
}