Java FileOutputStream создать файл, если он не существует
есть ли способ использовать FileOutputStream таким образом, что если файл (строковое имя файла) не существует, то он его создаст?
FileOutputStream oFile = new FileOutputStream("score.txt", false);
8 ответов:
Он будет бросать
FileNotFoundExceptionесли файл не существует и не может быть создан (doc), но он создаст его, если он может. Чтобы убедиться, что вы, вероятно, должны сначала проверить, что файл существует, прежде чем создаватьFileOutputStream(и создать сcreateNewFile()если это не так):File yourFile = new File("score.txt"); yourFile.createNewFile(); // if file already exists will do nothing FileOutputStream oFile = new FileOutputStream(yourFile, false);
перед созданием файла необходимо создать все родительские каталоги.
использовать
yourFile.getParentFile().mkdirs()
вы можете создать пустой файл, независимо от того, существует он или нет ...
new FileOutputStream("score.txt", false).close();Если вы хотите оставить файл, если он существует ...
new FileOutputStream("score.txt", true).close();вы получите исключение FileNotFoundException только при попытке создать файл в каталоге, который не существует.
File f = new File("Test.txt"); if(!f.exists()){ f.createNewFile(); }else{ System.out.println("File already exists"); }пройти этот
fнаFileOutputStreamконструктор.
FileUtils от apache commons-Это довольно хороший способ добиться этого в одной строке.
FileOutputStream s = FileUtils.openOutputStream("/home/nikhil/somedir/file.txt")это создаст родительские папки, если они не существуют, и создаст файл, если он не существует, и вызовет исключение, если объект file является каталогом или не может быть записан. Это эквивалентно:
File file = new File("/home/nikhil/somedir/file.txt"); file.getParentFile().mkdirs(); // Will create parent directories if not exists file.createNewFile(); FileOutputStream s = new FileOutputStream(file,false);все вышеперечисленные операции вызовут исключение, если текущий пользователь не может выполнить операцию.
создать файл если не существует. Если файл завершает работу, очистите его содержимое:
/** * Create file if not exist. * * @param path For example: "D:\foo.xml" */ public static void createFile(String path) { try { File file = new File(path); if (!file.exists()) { file.createNewFile(); } else { FileOutputStream writer = new FileOutputStream(path); writer.write(("").getBytes()); writer.close(); } } catch (IOException e) { e.printStackTrace(); } }
вы можете потенциально получить
FileNotFoundExceptionЕсли файл не существует.документация Java говорит:
будет ли файл доступен или может быть создан зависит от базовая платформа http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Если вы используете Java 7 Вы можете использовать Java.пакет НИО:
параметр options указывает способ создания файла или открытый... он открывает файл для записи, создать файл если он не существует...
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html