1. 程式人生 > >5、IO--BufferedReader&BufferedReader

5、IO--BufferedReader&BufferedReader

span java 博客 reader 進行 file throw 轉化 sta

BufferedReader

常見方法:

BufferedReader(Reader in) 接收一個Reader類的實例

readLine() 一次性從緩沖區中將內容全部讀取出來

註意:

BufferedReader中只能接收輸入流的實例

必須使用字符輸入流和字節輸入流的的轉換類InputStreamReader將字節輸入流轉換為字符流

實例:

此時關閉是由裏到外進行關閉

	public static void main(String[] args) throws IOException {
		
		//1、
		File file = new File("d:\\test.txt");
		InputStream in =new FileInputStream(file);
		//轉化流
		Reader reader = new InputStreamReader(in);
		
		//2、
		BufferedReader breader = null;
		breader = new BufferedReader(reader);
		
		String str = null;
		while((str = breader.readLine())!=null){
			System.out.println(str);
		}
		
		//3、關閉
		in.close();
		reader.close();
		breader.close();
		
	}

讀取的結果:

技術分享圖片

BufferedWriter

主要的寫方法:

技術分享圖片

註意:

BufferedReader中只能接收輸入流的實例

必須使用字符輸入流和字節輸入流的的轉換類OutputStreamWriter將字節輸入流轉換為字符流

註意:

關閉是由外至裏

    public static void main(String[] args) throws IOException {
        
        //1、
        File file = new File("d:\\test.txt");
        OutputStream   
out = new FileOutputStream(file); Writer writer = new OutputStreamWriter(out); //2、 BufferedWriter bwriter = null; bwriter = new BufferedWriter(writer); //3、 bwriter.write("我是MrChengs \n\r 我愛博客園"); //4、關閉流資源
bwriter.close(); writer.close(); out.close();
}

技術分享圖片

小測試復制文件內容:

    public static void main(String[] args) throws IOException {
        
        //將test.txt文件的內容復制到aaa.txt文件中
        //1、
        //被復制內容的為念
        File file = new File("d:\\test.txt");
        InputStream in = new FileInputStream(file);
        Reader reader = new InputStreamReader(in);
        //空文件  即將被test.txt的內容進行填充
        //File file1 = new File("aaa.txt");
        OutputStream out = new FileOutputStream("d:\\aaa.txt");
        Writer writer = new OutputStreamWriter(out);
        
        //2、
        BufferedWriter bwriter = null;
        bwriter = new BufferedWriter(writer);
        
        BufferedReader breader = null;
        breader = new BufferedReader(reader);
        
        
        //3、
        String str =null;
        int i = 0;
        
        while((str = breader.readLine()) != null){
            bwriter.write(str);
        }
        
        System.out.println("--");
        
        //4、關閉
        in.close();
        reader.close();
        breader.close();
        
        bwriter.close();
        writer.close();
        out.close();
}

此時出現的問題是復制的內容僅僅之後填充再一行中

技術分享圖片

解決方法:

5、IO--BufferedReader&BufferedReader