Text 파일을 읽는 다양한 방법이 있습니다.
- BufferedReader
- Files
- commons-io의 FileUtils
예제를 통해 텍스트 파일을 읽는 방법을 알아보겠습니다.
BufferedReader을 이용하여 텍스트 파일 읽기
BufferedReader을 이용하여 텍스트 파일을 읽을 수 있습니다. BufferedReader의 생성자에 FileReader 객체를 인자로 전달하면 됩니다.
다음과 같이 text.txt
파일을 읽고 텍스트를 출력할 수 있습니다.
File file = new File("/home/js/test/text.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
readLine()
는 더 이상 읽을 내용이 없으면 null을 리턴합니다.
실행해보면 결과는 다음과 같습니다.
Chicago – April 28, 2020 Society for Incentive Travel Excellence (SITE) will hold its third Covid-19 related webinar Friday, May 1, at 10AM (Chicago) 4PM (London) 11PM (Singapore).
With previous webinars having attracted a cumulative audience of over 700 incentive travel professionals, we now turn our attention to Health Security in a Post Covid-19 World.
Files를 이용하여 텍스트 파일 읽기
Files를 이용하여 텍스트 파일을 읽고 출력할 수 있습니다.
다음은 text.txt의 내용을 출력하는 코드입니다.
readAllLines()
는 파일의 문자열을 리스트로 리턴합니다.
try {
Path path = Paths.get("/home/js/test/text.txt");
List<String> lines = Files.readAllLines(path);
for(String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
Files와 BufferedReader를 이용하려면 다음과 같이 구현할 수도 있습니다.
Path path = Paths.get("/home/js/test/text.txt");
try (BufferedReader reader = Files.newBufferedReader(path)) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
(newBufferedReader()
는 Java8부터 사용가능한 것 같습니다.)
결과
Chicago – April 28, 2020 Society for Incentive Travel Excellence (SITE) will hold its third Covid-19 related webinar Friday, May 1, at 10AM (Chicago) 4PM (London) 11PM (Singapore).
With previous webinars having attracted a cumulative audience of over 700 incentive travel professionals, we now turn our attention to Health Security in a Post Covid-19 World.
commons-io 라이브러리를 이용하여 텍스트 파일 읽기
commons-io 라이브러리를 이용하여 파일을 읽을 수도 있습니다.
Gradle 프로젝트는 build.gradle
의 dependencies에 다음과 같이 추가합니다.
dependencies {
compile group: 'commons-io', name: 'commons-io', version: '2.6'
...
}
Maven 등의 다른 빌드시스템을 사용하는 프로젝트는 mvnrepository.com을 참고하셔서 설정하시면 됩니다.
다음은 commons-io의 FileUtils를 이용하여 파일을 읽는 코드입니다. readLines()
는 인자로 encoding 타입을 받습니다. 그리고 문자열 리스트를 리턴합니다.
try {
File file = new File("/home/js/test/text.txt");
List<String> lines = FileUtils.readLines(file, "UTF-8");
for(String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
만약 ListreadFileToString()
을 이용할 수도 있습니다.
System.out.println();
try {
File file = new File("/home/js/test/text.txt");
String strings = FileUtils.readFileToString(file, "UTF-8");
System.out.println(strings);
} catch (IOException e) {
e.printStackTrace();
}
실행 결과는 위의 코드들과 동일합니다. 단지 1개의 string으로 합쳐졌을 뿐입니다.(concatenated)
결과
Chicago – April 28, 2020 Society for Incentive Travel Excellence (SITE) will hold its third Covid-19 related webinar Friday, May 1, at 10AM (Chicago) 4PM (London) 11PM (Singapore).
With previous webinars having attracted a cumulative audience of over 700 incentive travel professionals, we now turn our attention to Health Security in a Post Covid-19 World.
참고
Related Posts
- Java - Unsupported class file major version 61 에러
- Java - String.matches()로 문자열 패턴 확인 및 다양한 예제 소개
- Java - 문자열 공백제거 (trim, replace)
- Java - replace()와 replaceAll()의 차이점
- Java - ArrayList 초기화, 4가지 방법
- Java - 배열 정렬(Sorting) (오름차순, 내림차순)
- Java - 문자열(String)을 비교하는 방법 (==, equals, compare)
- Java - StringBuilder 사용 방법, 예제
- Java - 로그 출력, 파일 저장 방법 (Logger 라이브러리)
- Java IllegalArgumentException 의미, 발생 이유
- Java - NullPointerException 원인, 해결 방법
- Seleninum의 ConnectionFailedException: Unable to establish websocket connection 해결
- Java - compareTo(), 객체 크기 비교
- Java - BufferedWriter로 파일 쓰기
- Java - BufferedReader로 파일 읽기
- Java charAt() 함수 알아보기
- Java - BigInteger 범위, 비교, 연산, 형변환
- Java contains()로 문자(대소문자 X) 포함 확인
- Java - Set(HashSet)를 배열로 변환
- Java - 문자열 첫번째 문자, 마지막 문자 확인
- Java - 문자열 한글자씩 자르기
- Java - 문자열 단어 개수 가져오기
- Java - 1초마다 반복 실행
- Java - 배열을 Set(HashSet)로 변환
- Java - 여러 Set(HashSet) 합치기
- Java - 명령행 인자 입력 받기
- Java - 리스트 역순으로 순회, 3가지 방법
- Java - 특정 조건으로 리스트 필터링, 3가지 방법
- Java - HashMap 모든 요소들의 합계, 평균 계산
- Java - 특정 조건으로 HashMap 필터링
- Java - 싱글톤(Singleton) 패턴 구현
- Java - 숫자 왼쪽에 0으로 채우기
- Java - String 배열 초기화 방법
- Java - 정렬된 순서로 Map(HashMap) 순회
- Java - HashMap에서 key, value 가져오기