Как прочитать файл в Groovy в строку?
Мне нужно прочитать файл из файловой системы и загрузить все содержимое в строку в контроллер заводной, что самый простой способ сделать это?
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()
не работает, это вызывает 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();
чтение строки файла 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)
}
создать новый файл.
new File("C:\Temp\FileName.txt").createNewFile();