Как прочитать файл в Groovy в строку?



Мне нужно прочитать файл из файловой системы и загрузить все содержимое в строку в контроллер заводной, что самый простой способ сделать это?

726   6  

6 ответов:

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

Если вам нужно указать кодировку символов, используйте вместо этого следующее:

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

самый короткий путь действительно просто

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

но в этом случае у вас нет контроля над тем, как байты в файле интерпретируются как символы. AFAIK groovy пытается угадать кодировку здесь, глядя на содержимое файла.

Если вы хотите определенную кодировку символов, вы можете указать имя набора символов с помощью

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

посмотреть API docs on File.getText(String) для дальнейшего использования.

небольшое изменение...

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

самый простой способ будет

new File(filename).getText()

что означает, что вы могли бы просто сделать:

new File(filename).text

в моем случае new File() не работает, это вызывает FileNotFoundException при запуске в производство Дженкинс работу. Следующий код решил эту проблему, и еще проще, на мой взгляд:

def fileContents = readFile "path/to/file"

Я все еще не понимаю эту разницу полностью, но, возможно, это поможет кому-то еще с той же проблемой. Возможно, исключение было вызвано тем, что new File() создает файл в системе, который выполняет код groovy, который был другой системой, чем тот, который содержит файл, который я хотел читать.

здесь вы можете найти другой способ сделать то же самое.

читать файл.

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

читать весь файл.

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

читать файл строки до свидания линии.

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)

}

создать новый файл.

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

Comments

    Ничего не найдено.