Groovy-파일 I / O
Groovy는 I / O로 작업 할 때 여러 가지 도우미 메서드를 제공합니다. Groovy는 파일에 대해 다음 기능을 제공하기 위해 더 쉬운 클래스를 제공합니다.
- 파일 읽기
- 파일에 쓰기
- 파일 트리 탐색
- 데이터 개체를 파일에 읽고 쓰기
이 외에도 파일 I / O 작업을 위해 아래 나열된 일반 Java 클래스를 항상 사용할 수 있습니다.
- java.io.File
- java.io.InputStream
- java.io.OutputStream
- java.io.Reader
- java.io.Writer
파일 읽기
다음 예제는 Groovy에서 텍스트 파일의 모든 행을 출력합니다. 방법eachLine 텍스트 파일의 각 행을 읽을 수 있도록 Groovy의 File 클래스에 내장되어 있습니다.
import java.io.File
class Example {
static void main(String[] args) {
new File("E:/Example.txt").eachLine {
line -> println "line : $line";
}
}
}
File 클래스는 파일 이름을 매개 변수로 사용하는 새 개체를 인스턴스화하는 데 사용됩니다. 그런 다음 eachLine의 함수를 가져 와서 line이라는 변수에 넣고 그에 따라 인쇄합니다.
파일에 다음 줄이 포함되어 있으면 인쇄됩니다.
line : Example1
line : Example2
파일 내용을 전체 문자열로 읽기
파일의 전체 내용을 문자열로 가져 오려면 파일 클래스의 text 속성을 사용할 수 있습니다. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println file.text
}
}
파일에 다음 줄이 포함되어 있으면 인쇄됩니다.
line : Example1
line : Example2
파일에 쓰기
파일에 쓰려면 writer 클래스를 사용하여 텍스트를 파일로 출력해야합니다. 다음 예제는이를 수행하는 방법을 보여줍니다.
import java.io.File
class Example {
static void main(String[] args) {
new File('E:/','Example.txt').withWriter('utf-8') {
writer -> writer.writeLine 'Hello World'
}
}
}
Example.txt 파일을 열면 파일에 인쇄 된 "Hello World"라는 단어가 표시됩니다.
파일 크기 얻기
파일 크기를 얻으려면 파일 클래스의 길이 속성을 사용하여 파일 크기를 얻을 수 있습니다. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
File file = new File("E:/Example.txt")
println "The file ${file.absolutePath} has ${file.length()} bytes"
}
}
위의 코드는 파일의 크기를 바이트 단위로 표시합니다.
파일이 디렉토리인지 테스트
경로가 파일인지 디렉토리인지 확인하려면 다음을 사용할 수 있습니다. isFile 과 isDirectoryFile 클래스의 옵션. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
def file = new File('E:/')
println "File? ${file.isFile()}"
println "Directory? ${file.isDirectory()}"
}
}
위의 코드는 다음 출력을 보여줍니다.
File? false
Directory? True
디렉토리 생성
새 디렉토리를 만들려면 다음을 사용할 수 있습니다. mkdirFile 클래스의 기능. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
def file = new File('E:/Directory')
file.mkdir()
}
}
존재하지 않는 경우 E : \ Directory 디렉토리가 작성됩니다.
파일 삭제
파일을 삭제하려면 File 클래스의 삭제 기능을 사용할 수 있습니다. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
def file = new File('E:/Example.txt')
file.delete()
}
}
파일이 있으면 삭제됩니다.
파일 복사
Groovy는 또한 한 파일에서 다른 파일로 내용을 복사하는 기능을 제공합니다. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
def src = new File("E:/Example.txt")
def dst = new File("E:/Example1.txt")
dst << src.text
}
}
Example1.txt 파일이 생성되고 Example.txt 파일의 모든 내용이이 파일에 복사됩니다.
디렉토리 내용 얻기
Groovy는 드라이브에있는 드라이브와 파일을 나열하는 기능도 제공합니다.
다음 예는 다음을 사용하여 시스템의 드라이브를 표시하는 방법을 보여줍니다. listRoots File 클래스의 기능.
class Example {
static void main(String[] args) {
def rootFiles = new File("test").listRoots()
rootFiles.each {
file -> println file.absolutePath
}
}
}
컴퓨터에서 사용 가능한 드라이브에 따라 출력이 달라질 수 있습니다. 표준 기계에서 출력은 다음과 유사합니다.
C:\
D:\
다음 예제는 다음을 사용하여 특정 디렉토리의 파일을 나열하는 방법을 보여줍니다. eachFile File 클래스의 기능.
class Example {
static void main(String[] args) {
new File("E:/Temp").eachFile() {
file->println file.getAbsolutePath()
}
}
}
출력은 E : \ Temp 디렉토리에있는 모든 파일을 표시합니다.
디렉토리와 하위 디렉토리에있는 모든 파일을 재귀 적으로 표시하려면 다음을 사용합니다. eachFileRecurseFile 클래스의 기능. 다음 예제는이를 수행하는 방법을 보여줍니다.
class Example {
static void main(String[] args) {
new File("E:/temp").eachFileRecurse() {
file -> println file.getAbsolutePath()
}
}
}
출력은 E : \ Temp 디렉토리와 하위 디렉토리 (존재하는 경우)에있는 모든 파일을 표시합니다.