国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java中文件的I/O操作

2019-11-14 15:38:15
字體:
來源:轉載
供稿:網友

java中文件的讀寫操作

(一)

(1)java中文件的字節轉成字符讀操作

     FileInputStream fStream = new FileInputStream("test.txt");//此時為字節流
byte[] b = new byte[31];//定義字節數組存儲從文件夾中讀取的數據,大小最多31字節
fStream.read(b);//將test.txt的數據讀到b中
String line = new String(b,"UTF-8");//將字節轉換成字符
System.out.PRintln(line);//打印輸出

  以上是簡單的字節轉字符輸出的例子,當數據量較大時,應該重復讀取

while(fStream.read(b)!=-1)
{
String line=new String(b,"UTF-8");
System.out.println(line);
}

(2

)java中文件的字符轉為字節寫操作

FileOutputStream fos = new FileOutputStream("test.txt");
String line="hello world";
byte b[]=line.getBytes();//將字符轉換成字節
fos.write(b);通過字節流寫入文件

fos.close();//關閉

  (二)

利用緩沖區來進行文件的寫入和寫出,都是以緩沖區為中介,java.io.BufferedReader和java.io.BufferedWriter類各擁有8192字符的緩沖區。當BufferedReader在讀取文本文件時,會先盡量從文件中讀入字符數據并置入緩沖區,而之后若使用read()方法,會先從緩沖區中進行讀取。如果緩沖區數據不足,才會再從文件中讀取,使用BufferedWriter時,寫入的數據并不會先輸出到目的地,而是先存儲至緩沖區中。如果緩沖區中的數據滿了,才會一次對目的地進行寫出。

(1)利用緩沖區向文件寫入數據

String line="hello";
FileOutputStream fos = new FileOutputStream("test.txt");
BufferedWriter bfr = new BufferedWriter(new OutputStreamWriter(fos));//
bfr.write(line);//向緩沖區寫入數據
bfr.flush();//清理緩沖區,將數據全部傳入文件
bfr.close();//關閉緩沖區
fos.close();//關閉文件輸出流

 為什么用到flush(),因為緩沖區對于小數據,可能要等到存滿一定量的數據才會向文件寫入,造成一定的數據滯留,利用flush可以將滯留的數據一起輸送給文件,防止文件數據的丟失。

(2)利用緩沖區從文件中讀取數據

 FileInputStream fis = new FileInputStream("test.txt"); BufferedReader bfr = new BufferedReader(new InputStreamReader(fis));    		 String line=null;  while((line=bfr.readLine())!=null)//從讀緩沖區一行一行的讀取數據{      System.out.println(line);}bfr.flush();//清空緩沖區
bfr.close();//關閉緩沖區fis.close();//關閉文件輸入流

 bfr.readline()是通過從緩沖區以行為單位讀取數據,BufferReader是通過將字節轉換成字符類。

 

另外關于文件的寫入不覆蓋新的數據,方法 

FileOutputStream os = new FileOutputStream("test.txt", true);//true表示每次添加到文件末尾,從而不刪除原有數據

 

(三)關于FileReader和FileWriter

(1)FileReader

 

FileReader類創建了一個可以讀取文件內容的Reader類。比較適用于純文本文件

    例如,從一個文件逐行讀取并把它輸出到標準輸入流。

import  java.io.*;    class FileReaderDemo {        public static void main (String args[ ] ) throws Exception {            FileReader fr =  new FileReader ("c://in.txt");            BufferedReader br = new BufferedReader (fr);            String s;             while ((s = br.readLine() )!=null) {                 System.out.prinln (s);              }            fr.close();      }    }

(2)FileWriter

FileWriter 創建一個可以寫文件的Writer類。構造函數:

    FileWriter (String filePath)  filePath 是一個文件的完整路徑

    FileWriter(String filePath, boolean append)  如果append為true ,輸出是附加到文件尾的,即不覆蓋原數據

    FileWriter(File fileObj)  是描述該文件的File對象

  FileWriter fr = new FileWriter("test.txt");  BufferedWriter bfw = new BufferedWriter(fr);  String linString="hello World";  bfw.write(linString);  bfw.flush();  bfw.close();  fr.close();

  

 

 

綜上只是簡單敘述了常見讀寫文件的方法,歡迎指正


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 八宿县| 榆树市| 孝义市| 柳河县| 隆子县| 西平县| 伊春市| 湟源县| 邵东县| 吉隆县| 当雄县| 佳木斯市| 乌鲁木齐市| 阿鲁科尔沁旗| 青田县| 梓潼县| 阿城市| 屯留县| 岱山县| 喀喇沁旗| 潼南县| 班玛县| 阳新县| 德令哈市| 隆林| 威海市| 宝坻区| 铜鼓县| 万宁市| 迭部县| 南木林县| 五常市| 鸡泽县| 太仆寺旗| 绍兴县| 嘉定区| 婺源县| 安陆市| 巴楚县| 徐汇区| 出国|