** 노드 스트림과 프로세스 스트림
노드 스트림 : 물리적으로 직접 연결만된 스트림
프로세스 스트림 : 노드 스트림으로 연결된 것을 가지고 부가적인 기능 수행
- 입출력 스트림
스트림은 데이터가 이동하는 통로라고 생각하면 된다.
Stream으로 끝나면 8bit -> 영문까지 지원
Reader, Writer로 16bit 지원 -> 한글, 한자 등등 기타언어 지원
노드 스트림 : 물리적으로 하드웨어와 연결되는 스트림
프로세스 스트림 : 노드 스트림을 가지고 부가적인 기능을 수행하는 스트림
-텍스트 파일 읽기
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReadTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
FileReader fr = new FileReader("test.txt");
BufferedReader br = new BufferedReader(fr);
String str = null;
while((str = br.readLine()) != null){
System.out.println(str);
}
br.close();
fr.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
-텍스트 파일 쓰기
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class FileWriteTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
FileWriter fw = new FileWriter("test.txt");
PrintWriter pw = new PrintWriter(fw);
pw.println("하하핳");
pw.flush();
pw.close();
fw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
** FIleInput **
// 파일에 연결되는 16bit 노드 스트림
FileReader fr=new FileReader("C:\\java-kosta\\output4.txt");
// 부가기능(readLine())을 위한 프로세스 스트림
BufferedReader br=new BufferedReader(fr);
//System.out.println(br.readLine());
// readLine() 은 더 이상 읽을 내용이 없으면 null을 반환
// while 문을 이용해 파일의 모든 내용을 읽어 출력
String str=br.readLine();// 첫 라인을 읽는다.
while(str!=null){// str 이 null 이 아닐때까지 계속 반복한다.
System.out.println(str);
str=br.readLine();// 다음 라인을 읽어 str 지역변수에 할당
}
br.close();
** File Output **
// 직접 장치에 연결되는 노드 스트림 생성
// 파일이 없으면 파일을 새로 생성
FileWriter fw=new FileWriter("C:\\java-kosta\\output4.txt",true);
// 부가기능을 가진 프로세스 스트림 생성 (한라인씩 데이터를 기록)
// 프로세스 스트림을 생성할 때 위의 노드스트림을 인자값을 넣어 연결한다.
// true : autoflush 자동으로 데이터를 바로 출력
PrintWriter pw=new PrintWriter(fw,true);
pw.println("크리스탈");
//pw.flush();// 데이터를 출력
System.out.println("데이터를 기록!");
pw.close();//작업 완료!
'Code Archive > JAVA' 카테고리의 다른 글
| Step14. Socket 프로그래밍 (0) | 2014.09.12 |
|---|---|
| Step13. 객체 직렬화(Object Serialization) (0) | 2014.09.12 |
| Step11. Exception(예외처리) (0) | 2014.09.12 |
| Step10. Wrapper class, Nested(inner) class (0) | 2014.09.12 |
| Step9. Set, List, Map, Generic, Iterator, 로또 출력 프로그램 (0) | 2014.09.12 |