天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Java操作文本文件的方法

最初Java是不支持對文本文件的處理的,為了彌補(bǔ)這個缺憾而引入了Reader和Writer兩個類,這兩個類都是抽象類,Writer中write(char[] ch,int off,int length),flush()和close()方法為抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子類應(yīng)該分別實(shí)現(xiàn)他們。

  當(dāng)我們讀寫文本文件的時候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的類是InputStreamReader,它是字節(jié)轉(zhuǎn)換為字符的橋梁。你可以在構(gòu)造器重指定編碼的方式,如果不指定的話將采用底層操作系統(tǒng)的默認(rèn)編碼方式,例如GBK等。當(dāng)使用FileReader讀取文件的時候。

  FileReader fr = new FileReader("ming.txt");
  int ch = 0;
  while((ch = fr.read())!=-1 )
  {
  System.out.print((char)ch);
  }

  其中read()方法返回的是讀取得下個字符。當(dāng)然你也可以使用read(char[] ch,int off,int length)這和處理二進(jìn)制文件的時候類似,不多說了。如果使用InputStreamReader來讀取文件的時候

  while((ch = isr.read())!=-1)
  {
  System.out.print((char)ch);
  }

  這和FileReader并沒有什么區(qū)別,事實(shí)上在FileReader中的方法都是從InputStreamReader中繼承過來的。read()方法是比較好費(fèi)時間的,如果為了提高效率我們可以使用BufferedReader對Reader進(jìn)行包裝,這樣可以提高讀取得速度,我們可以一行一行的讀取文本,使用readLine()方法。

  BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));
  String data = null;
  while((data = br.readLine())!=null)
  {
  System.out.println(data);
  }

  當(dāng)你明白了如何用Reader來讀取文本文件的時候那么用Writer寫文件同樣非常簡單。有一點(diǎn)需要注意,當(dāng)你寫文件的時候,為了提高效率,寫入的數(shù)據(jù)會先放入緩沖區(qū),然后寫入文件。因此有時候你需要主動調(diào)用flush()方法。與上面對應(yīng)的寫文件的方法為:

  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);

  不要忘記用完后關(guān)閉流!下面是個小例子,幫助新手理解。其實(shí)有的時候Java的IO系統(tǒng)是需要我們多記記的,不然哪天就生疏了。

  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();
  }
  }

jsp技術(shù)Java操作文本文件的方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲七七久久桃花综合 | 亚洲无吗精品AV九九久久 | 亚洲午夜精品AV无码少妇 | 99久久精品国产亚洲AV | 含羞草免费完整视频在线观看 | 老师系列高H文 | 成人AV精品视频 | 摥管专用动态图399期 | 亚洲精品嫩草研究院久久 | 草莓视频免费在线观看 | 久久影院中文字幕 | 成人国内精品久久久久影 | 国产精品日韩欧美一区二区三区 | 国产成人国产在线观看入口 | 国产人人为我我为人人澡 | 亚洲精品久久久久久久蜜臀老牛 | CHINESE熟女老女人HD视频 | 伊人久久大香网 | 国产精品伦一区二区三级视频 | 国产精品久久久久久久久免费下载 | AV亚洲精品少妇毛片无码 | 成人综合在线视频免费观看完整版 | 国产传媒在线播放 | G0GO人体大尺香蕉 | 羞羞影院男女爽爽影院尤物 | 校园男男高h小黄文 | 国家产午夜精品无人区 | 久久精品无码一区二区日韩av | 亚洲欧美国产视频 | 精品成人片深夜 | 国内2018年午夜福利5678 | 日本一本2017国产 | 亚洲第一区欧美日韩精品 | 日韩欧美高清一区 | 欧美6O老妪与小伙交 | 久久免费精品一区二区 | 国产精品视频免费视频 | 日韩精品无码视频一区二区蜜桃 | 日日夜夜影院在线播放 | seba51久久精品 | 久久久97丨国产人妻熟女 |