Czy istnieje sposób użycia FileOutputStream w taki sposób, że jeśli plik (nazwa pliku String) nie istnieje, to utworzy go?Java FileOutputStream Utwórz plik, jeśli nie istnieje
FileOutputStream oFile = new FileOutputStream("score.txt", false);
Czy istnieje sposób użycia FileOutputStream w taki sposób, że jeśli plik (nazwa pliku String) nie istnieje, to utworzy go?Java FileOutputStream Utwórz plik, jeśli nie istnieje
FileOutputStream oFile = new FileOutputStream("score.txt", false);
To rzuci FileNotFoundException
jeśli plik nie istnieje i nie może zostać utworzony (doc), ale stworzy go, jeśli to możliwe. Aby mieć pewność, że prawdopodobnie powinien pierwszy test, czy plik istnieje przed utworzeniem FileOutputStream
(i tworzyć z createNewFile()
jeśli nie):
File yourFile = new File("score.txt");
yourFile.createNewFile(); // if file already exists will do nothing
FileOutputStream oFile = new FileOutputStream(yourFile, false);
File f = new File("Test.txt");
if(!f.exists())
f.createNewFile();
przekazać tę f
do konstruktora FileOutputStream
.
to utworzyło plik, jeśli go nie znaleziono, dziękuję. –
Najlepsza odpowiedź tutaj. +1. – m4heshd
Możesz potencjalnie uzyskać FileNotFoundException
, jeśli plik nie istnieje.
dokumentacja Java mówi:
, czy plik nie jest dostępna lub mogą być tworzone zależy od platformy leżącej http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Jeśli używasz Java 7 można użyć Pakiet java.nio:
Parametr options określa sposób utworzenia lub otwarcia pliku ... otwiera plik do zapisu, tworzenia pliku jeśli nie istnieje ...
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
Można utworzyć pusty plik, czy istnieje, czy nie ...
new FileOutputStream("score.txt", false).close();
jeśli chcesz pozostawić plik jeśli istnieje ...
new FileOutputStream("score.txt", true).close();
Będziesz tylko dostać FileNotFoundException jeśli starają się stworzyć fi le w katalogu, który nie istnieje.
Zgłasza 'FileNotFoundException' w obu przypadkach. – mixel
Przed utworzeniem pliku konieczne jest utworzenie wszystkich katalogów nadrzędnych.
Zastosowanie yourFile.getParentFile().mkdirs()
FileUtils z Apache Commons jest bardzo dobrym sposobem na osiągnięcie tego w jednej linii.
FileOutputStream s = FileUtils.openOutputStream("/home/nikhil/somedir/file.txt")
To będzie tworzyć foldery macierzyste, jeśli nie istnieją i utworzyć plik, jeśli nie istnieje i rzucić wyjątek, jeśli obiekt plik jest katalogiem lub nie mogą być zapisywane. To równoważne:
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);
Wszystkie powyższe operacje rzuci wyjątek, jeśli bieżący użytkownik nie jest dopuszczalne, aby wykonać operację.
Utwórz plik, jeśli nie istnieje.Jeśli wyjścia plików, wyczyść jego zawartość:
/**
* 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();
}
}
tylko dawać alternatywny sposób, aby utworzyć plik tylko wtedy, gdy nie istnieje przy użyciu ścieżki i pliki.
Path path = Paths.get("Some/path/filename.txt");
Files.createDirectories(path.getParent());
if(!Files.exists(path))
Files.createFile(path);
Files.write(path, ("").getBytes());
jeśli plik nie istnieje, w jaki sposób utworzyć pusty plik txt? –
@StefanDunn z metodą 'createNewFile()', jak pokazano w moim przykładzie. – talnicolas
Warunek jest zbędny. Według [JavaDoc] (http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html#createNewFile%28%29), 'createNewFile()' samoistnie sprawdza istnienie pliku. – aztek