I’ve already created a method that uses createNewFile to create a new file and it does so successfully. I’ve also made a method that’s supposed to open files, using randomAccessFile. Due to some issues I checked to see whether a new file is created if I put a new name as a parameter in randomAccessfile and it is. I was wondering if that’s actually the case and if so, what can I replace it with in order to open files and read-write on them. I can’t change much to the “general idea” of my program since this is a part of an assignment.
Advertisement
Answer
The documentation of the RandomAccessFile states about the mode
parameter to the class’s two constructors:
“r” Open for reading only. Invoking any of the write methods of the resulting object will cause an IOException to be thrown.
“rw” Open for reading and writing. If the file does not already exist then an attempt will be made to create it.
The file is only created or modified if you supply a “w” in to the file mode. The file will be created if it doesn’t exist, but the contents will not be changed if the file does exist because you are opening the file for both reading and writing.
There is no write mode that causes a file to be opened only if it exists, failing otherwise. To get that functionality in your code, you’d want to first check for the existence of the file, and have your logic do whatever is appropriate when the file does not exist.