Java 如何利用緩沖流讀寫文件
利用緩沖流讀寫文件
從控制臺讀取數據寫入文件
讀取文件輸出到控制臺
public class BookTest { public static void main(String[] args) { //從控制臺輸入信息並寫入文件中 BufferedReader ir=new BufferedReader(new InputStreamReader(System.in)); //包裝成字符輸入緩沖流 BufferedWriter bw=null; try { bw=new BufferedWriter(new FileWriter("D:\\Test.txt")); for(String str=null;(str=ir.readLine())!=null;) { //輸入 e 實現寫文件安全退出 if(str.equalsIgnoreCase("e")) { System.out.println("安全退出"); break; } bw.write(str); //寫入一行 bw.newLine(); //寫入行分隔符 bw.flush(); //刷新緩沖流 } }catch(FileNotFoundException e) { e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); }finally { if(ir!=null) { try { ir.close(); }catch(IOException e) { e.printStackTrace(); } } if(bw!=null) { try { bw.close(); }catch(IOException e) { e.printStackTrace(); } } } Book[] book=new Book[20]; //對象數組 int k=0; BufferedReader br1=null; try { br1=new BufferedReader(new FileReader("D:\\Test.txt")); //利用緩沖流讀取文件 String str=null; while((str=br1.readLine())!=null) { System.out.println(str); //輸出一行 //String[] s=str.split(","); //System.out.println(s[0]); //book[k++]=new Book(s[0],s[1],s[2],s[3],Integer.parseInt(s[4])); } }catch(FileNotFoundException e) { e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); }finally { if(br1!=null) { try { br1.close(); }catch(IOException e) { e.printStackTrace(); } } } } }
運行效果:
值得註意的是:
該程序的寫文件部分在程序的第一次運行中運行即可,以後運行程序的時候要將此部分註釋掉,否則會一直先要從控制臺讀取數據寫到文件中,除非需要修改文件中的內容。
文件流和緩沖流
按照處理數據的單位的不同:字節流,字符流(處理的文本文件)
按照角色不同:節點流(直接作用於文件的),處理流
文件流(節點流):
FileInputStream FileOutputStream FileReader FileWriter
緩沖流:有刷新
BufferedInputStream BufferedOutputStream BufferedReader (ReadLine)(newLine) BufferedWriter
輸入流 file.read(new byte[5]);
把文件讀到字節數組裡
BufferedInputStream int (len = file.read(new byte[5]))!=-1 FileReader (file.readLine(str)!=null
轉化流:InputStreamReader
,OutputStreamWriter
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java的File類和IO流其實真的不難
- Java深入淺出說流的使用
- 淺談緩沖字符流 BufferedReader BufferedWriter用法
- Java中IO流解析及代碼實例
- Java中FileWriter類的常用方法說明