[중]스트림

서울IT코드정리 /kyChoi·2021년 10월 31일
0

중급

목록 보기
2/2
test1. java

import java.io.*;

class A{
	public static void main(String args[]){
		try{FileInputStream fis = new FileInputStream("c:/java/abc.txt");
		System.out.println(fis.read());}
		catch(FileNotFoundException e1){}
		catch(IOException e2){}
}
}

test1.java 를 실행켜보니, 65가 나왔습니다.
read() 메소드가 3가지 있는데 인자값이 없는 메소드는 한 글자의 byte를 읽어들입니다.
65 가 있는걸 봐서 abc.txt 에 가장 첫번째 문자가 A 임을 알 수 있어요~
그럼 글자를 출력하려면 어떻게 해야 할까요~

test1. java

import java.io.*;

class A{
	public static void main(String args[]){
		try{FileInputStream fis = new FileInputStream("c:/java/abc.txt");
		System.out.println((char)fis.read());}
		catch(FileNotFoundException e1){}
		catch(IOException e2){}
}
}

로 하면 문자 A 가 나옵니다~

import java.io.*;
import java.util.*;
class A{
	public static void main(String args[])throws Exception{
		try{
			Scanner sc = new Scanner(new FileInputStream("c:/java/a.java"));
			int num =1;
			while(true) System.out.println((num++) + ":" +sc.nextLine());

}catch(NoSuchElementException e){}
}
}

Scanner 객체에게 a.java 파일을 읽어오게 합니다.
int num =1 로 각 줄에 넘버링을 합니다
while 문으로 nextLine 메소드를 사용해서 한 줄씩 읽어 오게 합니다.
더이상 읽어올 문장이 없으면 Exception 이 발생해서 try catch 로 잡아 줍니다

import java.io.*;
import java.util.*;
class A{
	public static void main(String args[])throws Exception{


	InputStreamReader isr = new InputStreamReader(System.in);
	BufferedReader br = new BufferedReader(isr);
	while(true){
		String line = br.readLine();
		if(line==null) break;
		System.out.println(line);
		
}}}

다른 방법으로는 InputStreamReader 랑 BufferedReader 입니다
InputStreamReader에 cmd 창을 읽어올 거라 알려줍니다.
InputStreamReader 객체를 BufferedReader() 에 넣어서 다음줄을 읽어올거라 합니다
br.readLine() 은 줄이 있는한 계속 읽어 옵니다.

파일을 읽어오려면
FileInputStream fis = new FileInputStream("파일명");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);

profile
건물주가 되는 그날까지

0개의 댓글