728x90
자바의 스트림(Stream)
- 자바 스트림은 입출력 장치와 자바 응용 프로그램 연결
- 입력 스트림 : 입력 장치 -> 자바 프로그램
- 출력 스트림 : 자바 프로그램 -> 입력 장치
- 입출력 스트림 기본 단위 : 바이트
- 바이트 입출력 스트림 : 단순 바이트 스트림 처리 (Ex. binary 파일)
- 문자 입출력 스트림 : 문자만 입출력하는 스트림 (Ex. txt 파일)
바이트 스트림
1. FileInputStream
- 파일 읽기
FileInputStream fin = new FileInputStream("c:\\test.txt");
int c;
while((c = fin.read()) != -1) { // 파일의 끝을 만나면 -1 return
System.out.print((char)c);
}
2. FileOutputStream
- 파일 쓰기
FileOutputStream fos = new FileOutputStream("c:\\test.out");
int num[]={1,4,-1,88,50};
byte b[]={7,51,3,4,1,24};
for(int i=0; i<num.length; i++) {
fos.write(num[i]);
}
fos.write(b);
fos.close();
문자 스트림
- 유니코드로 된 문자를 입출력하는 스트림
- Reader / Writer
- InputStreamReader / OutputStreamWriter : 바이트 스트림과 문자 스트림을 연결
- FileReader / FileWriter : 텍스트 파일에서 문자 데이터 입출력
1. FileReader
- 텍스트 파일 읽어 오기
FileReader fileReader;
try {
fileReader = new FileReader("c:\\windows\\system.ini");
int c;
while ((c = fileReader.read()) != -1) { // 한 문자씩 읽음
System.out.print((char) c);
}
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
2. InputStreamReader
- 한글 텍스트 파일 읽어 오기
InputStreamReader inputStreamReader;
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream("c:\\Users\\Dell\\Desktop\\test.txt");
inputStreamReader = new InputStreamReader(fileInputStream);
int c;
while ((c = inputStreamReader.read()) != -1) {
System.out.print((char) c);
}
inputStreamReader.close();
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
3. FileWriter
- 텍스트 파일에 키보드로 입력한 값 저장하기
Scanner sc = new Scanner(System.in);
FileWriter fileWriter;
int c;
try {
fileWriter = new FileWriter("c:\\Users\\Dell\\Desktop\\test.txt");
String line = sc.nextLine();
fileWriter.write(line);
sc.close();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
728x90
'Java > Java 기본' 카테고리의 다른 글
[JAVA] 네트워크 (0) | 2022.12.26 |
---|---|
[JAVA] 제네릭과 컬렉션 (0) | 2022.12.26 |
[JAVA] 상속 (0) | 2022.12.26 |