Java文本文件操作辦法實例詳解。本站提示廣大學習愛好者:(Java文本文件操作辦法實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java文本文件操作辦法實例詳解正文
本文實例講述了Java文本文件操作辦法。分享給年夜家供年夜家參考。詳細剖析以下:
最後Java是不支撐對文本文件的處置的,為了填補這個缺憾而引入了Reader和Writer兩個類,這兩個類都是籠統類,Writer中write(char[] ch,int off,int length),flush()和close()辦法為籠統辦法,Reader中read(char[] ch,int off,int length)和close()辦法是籠統辦法。子類應當分離完成他們。
當我們讀寫文本文件的時刻,采取Reader長短常便利的,好比FileReader,InputStreamReader和BufferedReader。個中最主要的類是InputStreamReader,它是字節轉換為字符的橋梁。你可以在結構重視指定編碼的方法,假如不指定的話將采取底層操作體系的默許編碼方法,例如GBK等。當應用FileReader讀取文件的時刻,
FileReader fr = new FileReader("ming.txt"); int ch = 0; while((ch = fr.read())!=-1 ) { System.out.print((char)ch); }
個中read()辦法前往的是讀獲得下個字符。固然你也能夠應用read(char[] ch,int off,int length)這和處置二進制文件的時刻相似,不多說了。假如應用InputStreamReader來讀取文件的時刻
while((ch = isr.read())!=-1) { System.out.print((char)ch); }
這和FileReader並沒有甚麼差別,現實上在FileReader中的辦法都是從InputStreamReader中繼續過去的。read()辦法是比擬好費時光的,假如為了進步效力我們可使用BufferedReader對Reader停止包裝,如許可以進步讀獲得速度,我們可以一行一行的讀取文本,應用readLine()辦法。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data); }
當你明確了若何用Reader來讀取文本文件的時刻那末用Writer寫文件異樣異常簡略。有一點須要留意,當你寫文件的時刻,為了進步效力,寫入的數據會先放入緩沖區,然後寫入文件。是以有時刻你須要自動挪用flush()辦法。與下面對應的寫文件的辦法為:
FileWriter fw = new FileWriter("hello.txt"); String s = "hello world"; fw.write(s,0,s.length()); fw.flush(); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt")); osw.write(s,0,s.length()); osw.flush(); PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true); pw.println(s);
不要忘卻用完後封閉流!上面是個小例子,贊助老手懂得。其實有的時刻Java的IO體系是須要我們多記記的,否則哪天就陌生了。
//hello world i like Java language import Java.io.*; public class TestFile2 { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("ming.txt"); char[] buffer = new char[1024]; int ch = 0; while((ch = fr.read())!=-1 ) { System.out.print((char)ch); } InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt")); while((ch = isr.read())!=-1) { System.out.print((char)ch); } BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data); } FileWriter fw = new FileWriter("hello.txt"); String s = "hello world"; fw.write(s,0,s.length()); fw.flush(); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt")); osw.write(s,0,s.length()); osw.flush(); PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true); pw.println(s); fr.close(); isr.close(); br.close(); fw.close(); osw.close(); pw.close(); } }
願望本文所述對年夜家的java法式設計有所贊助。