728x90
반응형
package chap15;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/*
* FileInputStream 예제 : 파일의 내용을 읽어서 화면에 출력하기
* 주요메서드
* int read() : 1byte를 읽어서 내용을 리턴.
* int read(byte[] buf) : buf의 크기만큼 읽어서 buf변수에 데이터를 저장.
* 실제 읽은 바이트수를 리턴.
* int read(byte[] buf,int start, int len)
* : 파일에서 len 크기만큼 데이터를 읽어서
* buf변수에 start 인덱스부터 데이터를 저장.
* 실제 읽은 바이트수를 리턴.
* int available() : 읽을 수 있는 파일의 크기를 바이트수로 리턴
*/
public class FileInputStreamEx1 {
public static void main(String[] args) throws IOException {
//파일의 위치는 각자 폴더에 맞도록 수정해야 함
FileInputStream fis =
new FileInputStream("src/chap15/InputStreamEx1.java");
int data =0;
System.out.println("===== read() 메서드를 이용하여 읽기");
while((data=fis.read()) != -1)
System.out.print((char)data);
System.out.println();
System.out.println("===== read(byte[]) 메서드를 이용하여 읽기");
fis = new FileInputStream("src/chap15/InputStreamEx1.java");
//fis.available() : 읽기 가능 바이트 수.
// 한개도 읽기 않았기 때문에 파일의 바이트 크기와 같다.
byte[] buf = new byte[fis.available()];//buf의 크기가 파일의 바이트크기임
//data=read(buf) : buf의 크기만큼 읽어서 buf에 읽은 데이터를 저장
// data변수에는 실제로 읽은 바이트수를 저장
while((data=fis.read(buf)) != -1)
//buf에서 0번인덱스부터 data 크기까지를 문자열로 변환.
System.out.print(new String(buf,0,data));
System.out.println();
System.out.println
("===== read(byte[],int start,int len) 메서드를 이용하여 읽기");
fis = new FileInputStream("src/chap15/InputStreamEx1.java");
//fis.read(buf,0,buf.length)
// buf에 buf.length만큼 읽어서 0번 인덱스 부터 읽인 데이터를 저장
while((data=fis.read(buf,0,buf.length)) != -1)
System.out.print(new String(buf,0,data));
System.out.println();
}
}
728x90
반응형
'study > Java' 카테고리의 다른 글
[Java] 36. IO 출력스트림 (FileOutputStream) (0) | 2022.04.01 |
---|---|
[Java] 36. IO 입력스트림 (FileReader) (0) | 2022.04.01 |
[Java] 36. IO (Runtime.getRuntime, exec) (0) | 2022.04.01 |
[Java] 36. IO 출력스트림 (Writer, OutputStreamWriter) (0) | 2022.04.01 |
[Java] 36. IO 출력스트림 (OutputStream) (0) | 2022.04.01 |