투케이2K

116. (java/자바) 텍스트(text) 파일 데이터 불러오기 및 읽기 - 한글 깨짐 현상 방지 실시 본문

Java

116. (java/자바) 텍스트(text) 파일 데이터 불러오기 및 읽기 - 한글 깨짐 현상 방지 실시

투케이2K 2021. 1. 12. 09:39

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Eclipse

개발 언어 : Java

/* =========================== */

/* =========================== */

[소스 코드]

 

package AI3;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class MainActivity20 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[텍스트(text) 파일 데이터 불러오기 - 한글 깨짐 현상 방지 실시]");
		
		/*[설 명]
		 * 1. 한글 데이터가 깨지는 경우 - euc-kr, utf-8 설정을 지정한다 
		 * 2. FileInputStream - 파일을 입력 및 읽어 올 수 있는 객체이다 
		 * 3. InputStream - 문자 및 바이트 입력, 읽어 올 수 있는 객체이다
		 */				
		
		getOneFileRead(); //메소드 호출
		
		getTwoFileRead(); //메소드 호출

	}//메인 종료
	
	// ==== [첫번째 방법] ====
	public static void getOneFileRead() {
		try {
			//[방법 1]
			
			//초기 텍스트 파일을 불러오기 위한 파일 경로 지정 실시
			String filePath = "C:/Users/two/Desktop/Output.txt";						
			
			//파일을 읽어오기 위한 FileInputStream 객체 선언
			FileInputStream fileStream = null; 
			
			//FileInputStream에 읽어올 파일 경로 지정 실시
			fileStream = new FileInputStream(filePath);
			
			byte readBuffer[] = new byte[fileStream.available()];
			
			while (fileStream.read(readBuffer) != -1);
			System.out.println("[1] 텍스트 파일 읽기 : "+new String(readBuffer,"euc-kr"));
	        
			//객체 사용을 다한 경우 스트림을 닫아준다
			fileStream.close(); //스트림 닫기
		}
		catch(Exception e) {
			System.out.println(e.getMessage());
		}
	}
	
	// ==== [두번째 방법] ====
	public static void getTwoFileRead() {
		try {
			//[방법 2]
			
			//초기 텍스트 파일을 불러오기 위한 파일 경로 지정 실시
			String filePath = "C:/Users/two/Desktop/Output.txt";
												 
			//파일을 읽어오기 위한 BufferedReader 객체 선언
			File file = null;
			BufferedReader in = null;
			
			//FileInputStream에 읽어올 파일 경로 지정 실시
			file = new File(filePath);			
			in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"euc-kr"));
			
			//데이터를 바이트로 읽어오기 변수 선언		
			int data = 0;
			
			System.out.print("[2] 텍스트 파일 읽기 : ");
			while((data = in.read()) != -1) {
				System.out.print((char)data); //한글자씩 문자로 변환해서 출력한다				
			}			
			
			//객체 사용을 다한 경우 스트림을 닫아준다
			in.close();									
		}
		catch(Exception e) {
			System.out.println(e.getMessage());
		}
	}

}//클래스 종료

/* =========================== */

[결과 출력]

[텍스트(text) 파일 데이터 불러오기 - 한글 깨짐 현상 방지 실시]

[1] 텍스트 파일 읽기 : 텍스트저장

[2] 텍스트 파일 읽기 : 텍스트저장

[텍스트 파일 경로 확인 - 텍스트 파일 마우스 우클릭 > 보안 메뉴 확인]

[텍스트 파일 저장된 데이터 확인]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. 한글 데이터가 깨지는 경우 - euc-kr, utf-8 설정을 지정한다

* 2. FileInputStream - 파일을 입력 및 읽어 올 수 있는 객체이다

* 3. InputStream - 문자 및 바이트 입력, 읽어 올 수 있는 객체이다

/* =========================== */

반응형
Comments