5-1.(5)バイトベースFileStream


バイトベースのストリームタイプ


FileInputStream


:ファイルからバイトを読み込む場合、バイトは文字単位のストリームとみなされます.

FileOutputStream


:ファイルにデータを書き込むときに文字単位でストリーム処理するストリーム

1.ファイル読み込み例


FileInputStreamの使用

  • メソッド1:ファイルパスを文字列
  • に指定
    FileInputStream fis = new FileInputStream("d:/D_Other/test2.txt");
  • メソッド2:ファイルオブジェクトを使用してファイル情報
  • を指定する.
    File file = new File("d:/D_Other/test2.txt");
    FileInputStream fis = new FileInputStream(file);
  • 出力:システム.out.print((char) c);
    => int c; int形式で文字を受信し、
  • をc文字形式で出力する.
    T05_FileStreamTest
    public class T05_FileStreamTest {
    	public static void main(String[] args) {
    		//1>> FileInputStream 객체를 이용한 파일 내용 읽기
    		FileInputStream fis = null;
    		
    		try {
    			//방법1 (파일경로 정보를 문자열로 지정하기)
    			//fis = new FileInputStream("d:/D_Other/test2.txt");//객체생성
    			
    			//방법2(파일정보를 File객체를 이용하여 지정하기)
    			File file = new File("d:/D_Other/test2.txt");
    			fis = new FileInputStream(file);
    			
    			int c;//읽어온 데이터를 저장할 변수
    			while((c=fis.read()) != -1) {
    				//읽어온 자료 출력하기
    				System.out.print((char) c);
    			}
    			
    			fis.close(); // 다 읽었으면 끝
    			//length 이용해서 바이트 구해보기
                System.out.println("\n파일크기 : "+file.length()+"byte");
    			
    		}catch(FileNotFoundException ex) {
    			System.out.println("지정한 파일이 없습니다.");
    		}catch(IOException ex) {
    			System.out.println("알 수 없는 입출력 오류입니다.");
    		}
    	}
    }
    Console:
    「d:/d other/test 2.txt」の内容とサイズはライブラリから出力されます.

    2.ファイル出力例


    FileOutputStreamの使用


    作成
  • FileOutputStreamオブジェクト
  • パスファイルを指定すると、write()は文字入力ライブラリ
  • を含むダッシュボードを生成します.
  • FileInputStreamオブジェクト生成出力
  • public class T06_FileStreamTest {
    	public static void main(String[] args) {
    		//1>>파일에 출력하기
    		FileOutputStream fos = null;
    		
    		//2>> write()
    		try {
    			//출력용 OutputStream 객체 생성
    			fos = new FileOutputStream("d:/D_Other/out2.txt");
    			
    			for(char ch='a'; ch<='z'; ch++) { //byte기반으로 char write 가능 -> 형변환 필요없어서
    				fos.write(ch);
    			}
    			System.out.println("파일에 쓰기 작업 완료...");
    			
    			//쓰기 작업 완료 후 스트림 닫기
    			fos.close();
    			
    			//=================================================
    			//3>>저장된 파일의 내용을 일거와 화면에 출력하기
    			FileInputStream fis = new FileInputStream("d:/D_Other/out.txt");
    			
    			int c;
    			while((c=fis.read()) != -1) {
    				System.out.print((char) c);
    			}
    			System.out.println();
    			System.out.println("출력 끝...");
    			
    			fis.close();
    			
    		}catch(IOException ex) {
    			ex.printStackTrace();
    		}
    	}
    }
    Console:
    ファイルに入力した文字列出力ライブラリ!
    指定したフォルダ->ファイルを開き、入力されていることを確認します.