¿Hay alguna manera de usar FileOutputStream de forma que si un archivo (String filename) no existe, entonces lo creará?Java FileOutputStream Crear archivo si no existe
FileOutputStream oFile = new FileOutputStream("score.txt", false);
¿Hay alguna manera de usar FileOutputStream de forma que si un archivo (String filename) no existe, entonces lo creará?Java FileOutputStream Crear archivo si no existe
FileOutputStream oFile = new FileOutputStream("score.txt", false);
Será lanzar una FileNotFoundException
si el archivo no existe y no se puede crear (doc), pero lo creará si se puede. Para asegurarse de que, probablemente, primero debe probar que el archivo existe antes de crear el FileOutputStream
(y crea con createNewFile()
si no lo hace):
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();
pasar esta f
a su FileOutputStream
constructor.
esto ha creado el archivo si no se ha encontrado, gracias. –
La mejor respuesta aquí. +1. – m4heshd
Es posible que obtenga un FileNotFoundException
si el archivo no existe.
documentación de Java dice:
Sea o no un archivo está disponible o se puede crear depende de la plataforma subyacente http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Si está utilizando Java 7 se puede utilizar el paquete java.nio:
El parámetro options especifica cómo se crea o abre el archivo ... se abre el archivo para escribir, crear el archivo si no existe ...
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
Puede crear un archivo vacío si existe o no ...
new FileOutputStream("score.txt", false).close();
si desea dejar el archivo si existe ...
new FileOutputStream("score.txt", true).close();
sólo obtendrás un FileNotFoundException si se intenta crear la ficción le en un directorio que no existe.
Lanza 'FileNotFoundException' en ambos casos. – mixel
Antes de crear un archivo, es necesario crear todos los directorios principales.
Uso yourFile.getParentFile().mkdirs()
FileUtils de bienes comunes Apache es una muy buena manera de lograr esto en una sola línea.
FileOutputStream s = FileUtils.openOutputStream("/home/nikhil/somedir/file.txt")
Esto creará las carpetas principales, si no existen y crear un archivo si no existe y lanzar una excepción si el objeto archivo es un directorio o no se puede escribir. Esto es equivalente a :
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);
Todas las operaciones anteriores se producirá una excepción si el usuario actual no está autorizado a hacer la operación.
Crear archivo si no existe.Si las salidas de archivos, borrar su contenido:
/**
* 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();
}
}
Sólo Dar una forma alternativa de crear el archivo sólo si no existe el uso de Path y archivos.
Path path = Paths.get("Some/path/filename.txt");
Files.createDirectories(path.getParent());
if(!Files.exists(path))
Files.createFile(path);
Files.write(path, ("").getBytes());
Si el archivo no existe, ¿cómo crearía un archivo .txt vacío? –
@StefanDunn con el método 'createNewFile()', como se muestra en mi ejemplo. – talnicolas
La condición es redundante. De acuerdo con [JavaDoc] (http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html#createNewFile%28%29), 'createNewFile()' comprueba atómicamente el existencia del archivo. – aztek