1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.InputStreamReader; 11 import java.io.OutputStreamWriter; 12 import java.io.UnsupportedEncodingException; 13 14 /** 15 * 文件讀取四步驟 16 * ---------要保證文件存在,不能保證就需判斷是否存在,在這里手動創建一個文件text.txt以確保存在 17 * 1:獲取文件 18 * 2:將文件寫入到文件輸入流中<文件輸入流是字節流> 19 * 3:將文件流寫入到輸入流Reader中 20 * 4:將輸入流文件放到緩沖流BufferReader中 21 * 四步驟:執行完畢文件會讀入緩沖流 22 * 5:從緩沖流中每次讀取一行打印輸出 23 * 6:關閉資源<流> 24 * 文件寫出同理: 25 * @author NEXT_NiGHT 26 * 27 */ 28 public class FileRW { 29 30 public static void main(String[] args) { 31 //----------------------文件讀入 32 //1 33 File file = new File("text.txt"); 34 try { 35 //2 36 FileInputStream fis=new FileInputStream(file); 37 //3 38 InputStreamReader isr=new InputStreamReader(fis,"utf-8");//FileInputStream字符流轉換成字節流要注意編碼 39 //4 40 BufferedReader br=new BufferedReader(isr); 41 //5 42 String line;//用來保存讀取到的數據 43 while((line = br.readLine())!=null){//每次讀取一行不為空 44 System.out.println(line); 45 } 46 //6 47 br.close(); 48 isr.close(); 49 fis.close(); 50 51 52 //----------------------文件寫出 53 //1鏈接文件<要寫出的位置> 54 File file2=new File("newtext.txt"); 55 //2文件輸出流 56 FileOutputStream fos=new FileOutputStream(file2); 57 //3輸出流 58 OutputStreamWriter os=new OutputStreamWriter(fos,"utf-8"); 59 //4寫入緩沖流 60 BufferedWriter bw=new BufferedWriter(os); 61 //5寫入 62 bw.write("七月七日長生殿\n"); 63 bw.write("夜半無人私語時\n"); 64 bw.write("在天月作比翼鳥\n"); 65 bw.write("在地願為連理枝\n"); 66 //6關閉資源 67 bw.close(); 68 os.close(); 69 fos.close(); 70 } catch (FileNotFoundException e) { 71 e.printStackTrace(); 72 } catch (UnsupportedEncodingException e) { 73 e.printStackTrace(); 74 } catch (IOException e) { 75 e.printStackTrace(); 76 } 77 78 79 80 81 } 82 }
以上代碼完整闡述了從文件中讀取的內容並打印輸出,以及如何向一個文件中寫入內容:
完整的eclise java代碼,可直接運行;
text.txt文件:
七月七日長生殿 夜半無人私語時 在天願作比翼鳥 在地願為連理枝
注意:
33行位置鏈接一個文件,若此時文件不存在那么進行后面的操作就會報異常,提示文件不存在。如果未進行文件是否存在的判定那么就必須保證文件是存在的。所以運行之前要在工程中創建一個文件text.txt
55行的位置同樣鏈接了一個文件,若文件不存在是否后續操作也會報異常呢?答案是否定的,56行的操作會自動創建一個文件,並且后面寫入內容時會存入此文件
62行寫入文件時用到了write這個函數,執行完畢后如果我們換掉寫入的內容,那么newtext.txt這個文件中的內容將是新的內容,write函數將會覆蓋掉文件原來的內容
2015-07-20
