쌍용교육(JAVA)/JAVA

쌍용교육 -JAVA 수업 15일차 BufferedReader,FileReader,FileWriter

구 승 2024. 4. 12. 08:46

BufferedReader

package kr.s28.iostream;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class BufferedReaderMain {
	public static void main(String[] args) {
		BufferedReader br = null;
		try {
			//		 전달받는 곳(buffer)	 문자스트림(2byte)     <-표준입력
			br = new BufferedReader(new InputStreamReader(System.in));
			
			System.out.print("당신의 이름 : ");
			String name = br.readLine();
			System.out.println("당신의 이름은  "+ name);
			
			System.out.print("당신의 나이 : ");
						//String -> int 
			int age = Integer.parseInt(br.readLine()); //readLine은 무조건 String으로 받아들이기 때문에 int로 바꿔줘야됨
			System.out.println("당신의 나이는 "+age);
		}catch(NumberFormatException e) {
			System.out.println("숫자를 입력하세요");
		}catch(IOException e) {
			System.out.println("입력시 오류 발생");
		}finally {
			//자원정리
			if(br != null)try {br.close();}catch(IOException e) {}
		}
	}
}

당신의 이름 : 구승회
당신의 이름은  구승회
당신의 나이 : 25
당신의 나이는 25

FileReader,FileWriter

package kr.s28.iostream;

import java.io.FileNotFoundException; //파일을 불렀는데 파일이 없을 때
import java.io.FileReader;
import java.io.IOException;

public class FileReaderMain {
	public static void main(String[] args) {
		FileReader fr = null;
		int readChar;
		try {
			fr = new FileReader("file.txt");
			//파일로부터 데이터를 한 문자씩 읽어들여 유니코드로 반환
			while((readChar = fr.read())!= -1) {
				System.out.println((char)readChar);
			}
			
			
		}catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace(); 
		}finally {
			if(fr !=null)try {fr.close();}catch(IOException e) {};
		}
	}
}

java.io.FileNotFoundException: file.txt (지정된 파일을 찾을 수 없습니다)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
	at java.base/java.io.FileReader.<init>(FileReader.java:60)
	at kr.s28.iostream.FileReaderMain.main(FileReaderMain.java:12)

package kr.s28.iostream;

import java.io.FileWriter;
import java.io.IOException;

public class FileWriterMain {
	public static void main(String[] args) {
		FileWriter fw = null;
		try {
			//파일생성(덮어쓰기)
			//fw = new FileWriter("fileWriter.txt");
			//파일생성(이어쓰기)
			fw = new FileWriter("fileWriter.txt",true);
			String message = "안녕하세요 FileWriter 테스트";
			fw.write(message);//버퍼 출력
			fw.flush();
			
			System.out.println("파일을 생성하고 내용을 기술했다.");
			}catch(IOException e){
			e.printStackTrace();
		}finally {
			if(fw !=null)try {fw.close();}catch(IOException e) {};
		}
	}
}

파일을 생성하고 내용을 기술했다.