Groovy의 파일을 문자열로 읽는 방법은 무엇입니까?
파일 시스템에서 파일을 읽고 전체 내용을 그루비 컨트롤러의 문자열로로드해야합니다. 가장 쉬운 방법은 무엇입니까?
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 문서를File.getText(String)
참조하십시오.
약간의 변화 ...
new File('/path/to/file').eachLine { line ->
println line
}
가장 쉬운 방법은
그것은 당신이 할 수있는 것을 의미합니다 :
new File(filename).text
제 경우 new File()
에는 작동하지 않아 FileNotFoundException
Jenkins 파이프 라인 작업에서 실행될 때 발생합니다 . 다음 코드는 이것을 해결했으며 내 의견으로는 훨씬 쉽습니다.
def fileContents = readFile "path/to/file"
나는 여전히이 차이를 완전히 이해하지 못하지만 같은 문제를 가진 다른 사람을 도울 수 있습니다. 아마도 new File()
그루비 코드를 실행하는 시스템에 파일을 생성 했기 때문에 예외가 발생 했을 수 있습니다. 그루비 코드는 내가 읽고 싶은 파일이 포함 된 시스템과 다른 시스템이었습니다.
여기서 동일한 방법으로 다른 방법을 찾을 수 있습니다.
파일을 읽습니다.
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();
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)
}
새 파일을 작성하십시오.
new File("C:\Temp\FileName.txt").createNewFile();
참고 URL : https://stackoverflow.com/questions/7729302/how-to-read-a-file-in-groovy-into-a-string
'development' 카테고리의 다른 글
Vimeo에서 img 썸네일을 받으시겠습니까? (0) | 2020.03.18 |
---|---|
Visual Studio에서 자동 줄 바꿈을 전환하는 방법은 무엇입니까? (0) | 2020.03.18 |
파이썬에서 주 번호를 얻는 방법? (0) | 2020.03.18 |
거부 됨 : 리소스에 대한 요청 된 액세스가 거부되었습니다. : docker (0) | 2020.03.17 |
MySQL에서 datetime에 삽입 할 때 PHP date () 형식 (0) | 2020.03.17 |