티스토리 뷰
http://fendee.egloos.com/8816840
<바이너리 파일의 읽기>
1.파일을 연다.
바이너리를 읽기 위해서는 FileInputStream 이라는 스트림 클래스의 오브젝트를 사용한다.
FileInputStream in = new FileInputStream("test.dat");
또는
FileInputStream in = new FileInputStream("c:/test.dat");
또는
FileInputStream in = new FileInputStream(args[0]);
기타,
FileInputStream in = new FileInputStream("test.txt");
2.데이터를 읽는다.
데이터를 읽기 위해서는 read() 메서드를 이용한다.
read() 메서드는 읽어들인 1바이트의 데이터를 int 형 정수로 반환한다.
읽어 들일 데이터가 없으면 -1 을 반환한다.
int c;
c = in.read();
3.파일을 닫는다.
파일을 닫기 위해서 close() 메서드를 사용한다.
in.close();
<바이너리 파일 쓰기>
test.dat 파일에 byte 형 데이터를 작성한다.
1.파일을 연다.
바이너리를 쓰기 위해서 FileOutputStream 이라는 스트림 클래스의 오브젝트를 사용한다.
FileOutputStream out = new FileOutputStream("test.dat");
2.데이터를 써 넣는다.
바이너리를 쓰기 위해서 write() 메서드를 사용한다.
write() 메서드는 인수로 주어진 데이터를 파일에 써 넣는다.
인수로는 int 형이나 byte 형 값을 지정한다.
out.write (65);
3.파일을 닫는다.
out.close();
<바이너리를 문자 스트림으로 변환하기>
바이트 스트림의 경우, 바로 읽을 수 없기 때문에, 이를 문자 스트림으로 변환해주어야 한다.
InputStreamReader 클래스와 OutputStreamWriter 클래스의 오브젝트를 사용하여 바이트 스트림을 문자 스트림으로 변환한다.
1. InputStreamReader
바이너리 입력을 문자 입력으로 변환하기 위한 클래스 이다.
InputStreamReader 클래스의 오브젝트는 바이너리 데이터를 읽어 들일 오브젝트를 인수로 받는다.
FileInputStream ifile = new FileInputStream("test.dat");
InputStreamReader in = new InputStreamReader(ifile);
InputStreamReader 클래스는 Reader 클래스의 서브클래스 이다.
2. OutputStreamWriter
바이너리 출력을 문자 출력으로 변환하는 클래스이다.
OutputStreamWriter 클래스의 오브젝트는 바이너리 데이터를 써 넣을 오브젝트를 인수로 받는다.
FileOutputStream ofile = new FileOutputStream("test.dat");
OutputStreamWriter out = new OutputStreamWriter(ofile);
<문자 스트림 변환을 포함한 바이너리 읽고 쓰기>
<a.java 내용>
import java.io.*;
public class a
{
public static void main(String [] args)
{
try{
//String filename = args[0];
//String filename = "c:/test.dat";
String filename = "test.dat";
FileOutputStream out = new FileOutputStream(filename);
FileInputStream File = new FileInputStream(filename);
InputStreamReader in = new InputStreamReader(File);
for(byte i = 1; i<=10; i++){
out.write(i);
}
//1부터 10까지 byte 코드로 쓴다. 파일이 없는경우 자동 생성한다.
int c;
String str = new String();
while((c=in.read()) != -1){
//System.out.print(c + " ");
str = str + c;
}
//파일의 내용을 읽어서 화면에 출력한다.(바이트 스트림을 문자 스트림으로 변환한 값을 출력)
System.out.println(str);
in.close();
out.close();
}catch(IOException ie){
System.out.println("파일이 존재하지 않습니다.");
}catch(Exception e){
System.out.println(e);
}
}
}
'program' 카테고리의 다른 글
[Java] 누가 날 부른거요? 날 호출한 클래스 알아내기. (0) | 2014.02.13 |
---|---|
Fink (0) | 2014.02.13 |
이미지 슬라이드 jquery 추천 (0) | 2013.11.18 |
java web 용어 (0) | 2013.11.05 |
Clients like REST part 1 (0) | 2013.10.16 |