En Java, tengo texto de un campo de texto en una variable de cadena llamada "texto".
¿Cómo puedo guardar el contenido de la variable "texto" en un archivo?
java
file
file-io
text-files
Justin White
fuente
fuente
Apache Commons IO contiene algunos métodos excelentes para hacer esto, en particular FileUtils contiene el siguiente método:
que le permite escribir texto en un archivo en una llamada de método:
También puede considerar especificar la codificación del archivo también.
fuente
FileUtils.writeStringToFile(new File("test.txt"), "Hello File", forName("UTF-8"));
Echa un vistazo a la API de Java File
Un ejemplo rápido:
fuente
@Cleanup new FileOutputStream(...)
y listo.En Java 7 puedes hacer esto:
Hay más información aquí: http://www.drdobbs.com/jvm/java-se-7-new-file-io/231600403
fuente
content.getBytes(StandardCharsets.UTF_8)
se puede usar para definir explícitamente la codificación.Acabo de hacer algo similar en mi proyecto. Usar FileWriter simplificará parte de su trabajo. Y aquí puedes encontrar un buen tutorial .
fuente
.close()
no se lanza (al menos en Java 7?), ¿Es el último trycatch quizás redundante?throw new RuntimeException(e);
Uso
FileUtils.writeStringToFile()
de Apache Commons IO . No es necesario reinventar esta rueda en particular.fuente
Puede usar la modificación del código a continuación para escribir su archivo desde cualquier clase o función que maneje el texto. Sin embargo, uno se pregunta por qué el mundo necesita un nuevo editor de texto ...
fuente
En Java 11, la
java.nio.file.Files
clase se amplió mediante dos nuevos métodos de utilidad para escribir una cadena en un archivo. El primer método (ver JavaDoc aquí ) usa el juego de caracteres juego de UTF-8 como predeterminado:Y el segundo método (ver JavaDoc aquí ) permite especificar un conjunto de caracteres individual:
Ambos métodos tienen un parámetro opcional de Varargs para configurar las opciones de manejo de archivos (ver JavaDoc aquí ). El siguiente ejemplo crearía un archivo no existente o agregaría la cadena a uno existente:
fuente
Prefiero confiar en las bibliotecas siempre que sea posible para este tipo de operación. Esto hace que sea menos probable que omita accidentalmente un paso importante (como el error que Wolfsnipes cometió anteriormente). Algunas bibliotecas se sugieren anteriormente, pero mi favorito para este tipo de cosas es Google Guava . Guayaba tiene una clase llamada Archivos que funciona muy bien para esta tarea:
fuente
Charsets.UTF-8
.Charsets.UTF_8
realidad esFiles.asCharSink(file, charset).write(text)
Utilice Apache Commons IO api. Es simple
Usar API como
Dependencia de Maven
fuente
En caso de que necesite crear un archivo de texto basado en una sola cadena:
fuente
Use esto, es muy legible:
fuente
Puedes insertar este método en tus clases. Si está utilizando este método en una clase con un método principal, cambie esta clase a estática agregando la palabra clave estática. De cualquier forma, deberá importar java.io. * para que funcione; de lo contrario, File, FileWriter y BufferedWriter no se reconocerán.
fuente
Podrías hacer esto:
fuente
Utilizando
Java 7
:fuente
Files.write(targetPath, bytes);
para sobrescribir el archivo entonces. Funcionará como se esperaba.Usando org.apache.commons.io.FileUtils:
fuente
Si solo le importa empujar un bloque de texto al archivo, esto lo sobrescribirá cada vez.
Este ejemplo permite al usuario seleccionar un archivo usando un selector de archivos.
fuente
Es mejor cerrar el flujo de escritura / salida en un bloque finalmente, en caso de que ocurra algo
fuente
}
fuente
Creo que la mejor manera es usar
Files.write(Path path, Iterable<? extends CharSequence> lines, OpenOption... options)
:Ver javadoc :
Tenga en cuenta. Veo que la gente ya ha respondido con el Java incorporado
Files.write
, pero lo que es especial en mi respuesta que nadie parece mencionar es la versión sobrecargada del método que toma un Iterable de CharSequence (es decir, String), en lugar de unabyte[]
matriz, portext.getBytes()
lo que no es necesario , que es un poco más limpio, creo.fuente
Si desea mantener los caracteres de retorno de carro de la cadena en un archivo, aquí hay un ejemplo de código:
fuente
Mi manera se basa en la transmisión debido a que se ejecuta en todas las versiones de Android y las necesidades de recursos de fecthing como URL / URI, cualquier sugerencia es bienvenida.
En lo que concierne, las secuencias (InputStream y OutputStream) transfieren datos binarios, cuando el desarrollador va a escribir una cadena en una secuencia, primero debe convertirla a bytes o, en otras palabras, codificarla.
fuente
Puede usar ArrayList para poner todos los contenidos de TextArea por ejemplo, y enviar como parámetro llamando al save, ya que el escritor acaba de escribir líneas de cadena, luego usamos "for" línea por línea para escribir nuestra ArrayList al final estaremos contentos con TextArea en el archivo txt. Si algo no tiene sentido, lo siento es Google Traductor y yo que no hablo inglés.
Mire el Bloc de notas de Windows, no siempre salta líneas y muestra todo en una línea, use Wordpad ok.
fuente