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