FileOutput/InputStream
try{ FileOutputStream fos = new FileOutputStream("test.txt"); //인자에는 파일명.확장자 byte[]b = {65,66,67,68}; fos.write(b); //출력 => ABCD fos.close(); }catch(FileNotFoundException fe){ System.out.println(fe.getMessage()); }catch(IOException ie){ //write()예외 System.out.println(ie.getMessage()); } //같이 쓸 수 있지만 구분해서 보기 위해 따로 써줌 try{ FileInputStream fis = new FileInputStream("test.txt"); //방법1 while(true){ //1바이트씩 읽어오기 때문에 반복문을 써준다 int n = fis.read(); if(n==-1) break; //더이상 읽어올게 없으면 while문을 빠져나옴 } //방법2 byte배열 => 배열길이만큼 읽겠다는 뜻 byte[] b = new byte[3]; long fileSize=0; //파일 사이즈도 구할 수 있음 // while(true){ int n = fis.read(b); //읽어온 만큼의 배열크기가 n에 저장됨.n=파일크기 fileSize+=n; //n에 파일의 크기를 누적시킴 if(n==-1) break; System.out.write(b,0,n); //b배열 0번째에서 n번째까지 출력하겠다는 뜻 } System.out.println(n); //ASKII코드 숫자로 출력 System.out.println((char)n); //문자로 출력 fis.close(); }catc(FileNotFoundException fe){ System.out.println(fe.getMessage()); }catch(IOException ie){ //write()예외 System.out.println(ie.getMessage()); }
:O) FileNotFoundException는 IOException의 자식예외 => 자식예외는 부모보다 위에 있을 수 없다.
FileWriter/Reader
try{ FileWriter fw = new FileWriter("C:\\java\\test.txt"); fw.write("Hello \n"); //명시적으로 줄바꿈을 해주어야함 fw.write("안녕하세요 \n"); fw.close(); }catch(IOException ie){ //write()예외 System.out.println(ie.getMessage()); }
try{ FileReader fr = new FileReader("C:\\java\\test.txt"); while(true){ int n = fr.read(); if(n==-1) break; System.out.println((char)n); } fr.close(); }catch(FileNotFoundException fe){ System.out.println("파일이 존재하지 않습니다."); }catch(IOException ie){ //write()예외 System.out.println(ie.getMessage()); } ``