package com.tjoeun.textfileIO;

import java.io.File;

import java.io.FileNotFoundException;
import java.util.Scanner;
public class TextFileReadTest {
public static void main(String[] args) {
// 텍스트 파일에 내용이 있는데 읽기가 안되는 경우 해결법
// 읽어들일 텍스트 파일이 UTF-8로 인코딩 되어 있는지 확인한다. ANSI(아스키코드) 타입으로 인코딩되어 있으면,
// 텍스트 파일을 다른 이름으로 저장하면서 인코딩 타입을 바꿔준다.
Scanner scanner = null; // 텍스트 파일의 데이터를 읽어들이는 스캐너
// String filepath = "./src/com/tjoeun/textfileIO/out.txt";
String filepath = "./src/com/tjoeun/textfileIO/in.txt";

try {
// Scanner 클래스 객체를 만들때 생성자로 "System.in"을 넘겨주면 키보드로 입력받는 스캐너가
// 만들어지지만 파일의 경로와 이름을 이용해서 생성한 File 클래스 객체를 넘겨주면 파일에서
// 데이터를 읽어들이는 스캐너가 만들어진다.
// File file = new File(filepath);
// scanner = new Scanner(file);
scanner = new Scanner(new File(filepath));
// 텍스트 파일에서 더 이상 읽어들일 데이터(줄)이 없을 때까지 반복하며 읽어들인다.
// hasNextLine() 메소드는 스캐너로 읽어들인 파일에서 다음에 읽을 데이터가 있으면 true
// 없으면 false을 리턴한다.
while (scanner.hasNextLine()) { // 읽어들일 데이터가 있는 동안 반복한다.
String str = scanner.nextLine().trim();
if (str.length() != 0) {
System.out.println(str);
}
}
System.out.println("텍스트 파일에서 읽기 완료!!!");
} catch (FileNotFoundException e) {
System.out.println("파일의 경로가 잘못되었거나 파일이 존재하지 않습니다.");
} finally {
// 출력 용도로 사용하는 PrintWriter 클래스 객체는 작업이 완료되면 반드시 close() 메소드를
// 실행해서 파일을 닫아야 하지만 입력 용도로 사용하는 Scanner 클래스 객체는 파일을 닫지 않아도
// 정상적으로 처리된다.

if (scanner != null) {
scanner.close();
}
}
}
}
'java&eclipse 코딩 알고리즘 > 20231214' 카테고리의 다른 글
| MemoList (0) | 2023.12.14 |
|---|---|
| MemoVO (0) | 2023.12.14 |
| StringTokenizerTest (0) | 2023.12.14 |
| TextFileReadTest2 (0) | 2023.12.14 |
| TextFileWriteTest (0) | 2023.12.14 |