JAVA
2015.10.21 16:22

텍스트 파일 읽기, 쓰기

조회 수 13266 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

자바에서 파일 쓰기 할 때
BufferedWriter file = new BufferedWriter(new FileWriter("filename")); 


대개의 경우 이런식으로 코딩을 했었는데, 이 코드는 파일을 덮어쓴다. 
파일을 덮어쓰지 않고 이어쓰기하는 방법이 없을까 하고 고민하고 찾아봤다.
RandomAccessFile 클래스를 사용하는 방법도 있었고
그리고 파일을 쭉 읽어서 변수에 저장을 한 뒤 새로 추가할 내용을 덧붙여서 파일에 쓰는 방법도 있었다. 
하지만 뭔가 더 간편한게 있을 것 같아서 찾아봤더니
이 한문장이면 파일 이어쓰기가 가능하다.

BufferedWriter file = new BufferedWriter(new FileWriter("filename", true));

이 코드는 파일이 없으면 새로 만들고 있다면 덮어쓰지 않고 이어서 쓰게한다.

그리고 파일에서 개행문자를 쓰려고할 때
C나 C++에서처럼 당연히 ""이 먹힐거라 생각을 하고 
str = str + "";
file.write(str, 0, str.length());

이렇게 썼는데 파일에는 줄바꿈이 되어있지 않았다. 
알아본 결과 저 위에서 사용한 FileWriter가 가독성때문에 ""을 지원하지 않기 때문이었다. 
BufferedWriter를 통해서 개행문자를 쓸 수 있다. 
바로 이렇게..

file.write(str, 0, str.length());
file.newLine();





가장 쉬운 Simple한 방법


ASCII is a TEXT file so you would use Readers for reading. Java also supports reading from a binary file using InputStreams. If the files being read are huge then you would want to use aBufferedReader on top of a FileReader to improve read performance.

Go through this article on how to use a Reader

I'd also recommend you download and read this wonderful (yet free) book called Thinking In Java

In Java 7

new String(Files.readAllBytes(...)) or Files.readAllLines(...)

In Java 8

Files.lines(..).forEach(...)






static String ReadAllText(String filepath)
{
	//Get the text file
	File file = new File(filepath);

	//Read text from file
	StringBuilder text = new StringBuilder();

	try {
	    BufferedReader br = new BufferedReader(new FileReader(file));
	    String line;

	    while ((line = br.readLine()) != null) {
	        text.append(line);
	        text.append('\n');
	    }

	    br.close();
	}
	catch (IOException e) {
		e.printStackTrace();
	}
	
	return text.toString();
}


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
176 LINUX [Shell Script] 리눅스 쉘(Shell) 스크립트 2014.09.23 87169 0
175 LINUX [Shell Script] 쉘 스크립트 개요 2014.09.23 28209 0
174 LINUX [Shell Script] 쉘 스크립트 함수에서 return값 반환 2015.04.30 23705 0
173 LINUX [Shell Script] 쉘 스크립트에서 getopt 사용하는 법 2014.11.09 17152 0
172 LINUX [Shell Script] 쉘 스크립트에서의 사칙연산과 문자열 자르기 2014.11.01 82040 0
171 LINUX [Shell Script] 쉘 프로그래밍을 위한 명령어 file 2015.04.30 7534 0
170 LINUX [Shell Script] 파일을 한줄씩 읽어오기 2014.10.03 56604 0
169 Python [tensorflow] 선형회귀 예제 2018.02.05 5708 0
168 Python [tensorflow] 텐서플로우 문서 한글번역본 2018.03.22 5523 0
167 HTML5 [TypeORM] TypeORM CreateQueryBuilder 2023.01.13 1621 0
166 LINUX [util] tar 사용법 2006.05.01 20694 7
165 일반 [VB] 파생된 수학 삼각 함수 2005.08.05 37401 0
164 Pi [아두이노] 포트를 직접 억세스하기 (Direct Port Manipulation in Arduino) 1 2017.07.24 17485 0
163 MFC _CrtDumpMemoryLeaks() 을 이용한 메모리 누수 탐지법 2 2010.11.02 44607 0
162 LINUX |(파이프), grep 명령어에 대해서 2006.02.06 32881 17
목록
Board Pagination ‹ Prev 1 ... 18 19 20 21 22 23 24 25 26 27 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5