vacio sirve saber que para metodos metodo leer esta escribir ejercicios como clase archivos archivo file groovy

sirve - metodos de clase file



¿Cómo leer un archivo en Groovy en una cadena? (6)

Aquí puedes encontrar alguna otra forma de hacer lo mismo.

Leer archivo

File file1 = new File("C:/Build/myfolder/myTestfile.txt"); def String yourData = file1.readLines();

Leer el archivo completo.

File file1 = new File("C:/Build/myfolder/myfile.txt"); def String yourData= file1.getText();

Leer archivo Line Bye Line.

File file1 = new File("C:/Build/myfolder/myTestfile.txt"); for (def i=0;i<=30;i++) // specify how many line need to read eg.. 30 { log.info file1.readLines().get(i) }

Crea un nuevo archivo.

new File("C:/Temp/FileName.txt").createNewFile();

Necesito leer un archivo del sistema de archivos y cargar todo el contenido en una cadena en un controlador genial, ¿cuál es la forma más fácil de hacerlo?


El camino más corto es precisamente

String fileContents = new File(''/path/to/file'').text

pero en este caso no tiene control sobre cómo los bytes en el archivo se interpretan como caracteres. AFAIK groovy intenta adivinar la codificación aquí mirando el contenido del archivo.

Si desea una codificación de caracteres específica, puede especificar un nombre de conjunto de caracteres con

String fileContents = new File(''/path/to/file'').getText(''UTF-8'')

Consulte la documentación de la API en File.getText(String) para obtener más información.


En mi caso, el new File() no funciona, causa una FileNotFoundException cuando se ejecuta en un trabajo de canalización de Jenkins. El siguiente código resolvió esto, y es aún más fácil en mi opinión:

def fileContents = readFile "path/to/file"

Todavía no entiendo completamente esta diferencia, pero tal vez ayude a alguien más con el mismo problema. Posiblemente la excepción se debió a que new File() crea un archivo en el sistema que ejecuta el código groovy, que era un sistema diferente al que contiene el archivo que quería leer.


Una ligera variación ...

new File(''/path/to/file'').eachLine { line -> println line }



String fileContents = new File(''/path/to/file'').text

Si necesita especificar la codificación de caracteres, use lo siguiente:

String fileContents = new File(''/path/to/file'').getText(''UTF-8'')