java文件讀取。(單字節讀取和按行讀取讀取)

          java中很多關于文件讀取的工作。
          操作也很平凡。
          所以java的文件讀取是很重要的一部分。
          首先是單字節的讀取工作。
          見源代碼:

           1package ReadFile;
           2
           3import java.io.FileReader;
           4import java.io.IOException;
           5
           6public class readFile {
           7    public static void readfile(String file){
           8        try{
           9            FileReader fr = new FileReader(file);
          10            int ch = 0;
          11            while((ch=fr.read())!=-1){
          12                System.out.println((char)ch);
          13            }

          14        }
          catch(IOException e){
          15            e.printStackTrace();
          16        }

          17    }

          18    public static void main(String[] args) {
          19        readfile("e:\\dd.txt");
          20    }

          21}

          這里是但讀取每個自己或字符。
          如果要進行按行讀取的話,必須采用BufferedReader  BufferedReader中的readline();
           1package ReadLime;
           2
           3import java.io.BufferedReader;
           4import java.io.BufferedWriter;
           5import java.io.FileReader;
           6import java.io.FileWriter;
           7import java.io.IOException;
           8
           9public class readLine {
          10    public static void readline(String file,String writerfile){
          11        try{
          12        FileReader fr = new FileReader(file);
          13        BufferedReader br = new BufferedReader(fr);
          14        
          15        FileWriter fw = new FileWriter(writerfile); //寫文件操作,把得到的file對應的文件中內容寫入,writerfile中去。
          16        BufferedWriter bw = new BufferedWriter(fw);
          17        String readoneline;
          18        int l;
          19        while((l = br.read()) != -1){
          20            readoneline = br.readLine();
          21            bw.write(readoneline);
          22            bw.newLine();
          23            System.out.println(readoneline);
          24        }

          25        bw.flush();
          26        br.close();
          27        bw.close();
          28        br.close();
          29        fw.close();
          30        fr.close();
          31        }
          catch(IOException e){
          32            e.printStackTrace();
          33        }

          34    }

          35    public static void main(String [] args){
          36        readline("e:\\dd.txt","e:\\aa.txt");
          37    }

          38}

          posted on 2008-10-06 14:50 duduli 閱讀(32476) 評論(12)  編輯  收藏 所屬分類: java

          評論

          # re: java文件讀取。(單字節讀取和按行讀取讀?。? 2008-10-06 15:16 隔葉黃鶯

          再簡單也比不過 groovy 的這一行代碼

          text = new File("foo.txt").getText();   回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀取) 2008-10-06 16:23 van

          @隔葉黃鶯

          PHP,Python,Rudy都可以這么簡單..

          這樣沒啥可比性..

          學Java的新手依然比學其他語言的新手多.

          So從這個角度來講,博主的文章還是更具價值的.:-)  回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀取) 2008-10-06 19:00 隔葉黃鶯

          第一段代碼應使用字節緩沖,不然效率會低很多,緩沖的大小可適應實際來調整

          第二段代碼,不需要逐層 close(),這里的實現都是裝飾模式,外層 close() 時會調用內層對象的 close() 方法。  回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀取) 2008-10-06 19:37 duduli

          想從基礎學起,呵呵 @隔葉黃鶯
            回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀?。? 2008-10-06 19:37 duduli

          這個我也知道,但是并沒過多的考慮。@隔葉黃鶯
            回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀?。? 2008-10-06 19:56 隔葉黃鶯

          你都知道呀,就當我什么也沒說。  回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀?。? 2008-10-06 20:22 duduli

          也不能那樣說啦,至少還是有缺陷的。謝了@隔葉黃鶯
            回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀取) 2008-12-09 16:37 fofo

          行讀取時貌似代碼有問題
          while((l = br.read()) != -1){
          readoneline = br.readLine();
          System.out.println(readoneline);
          }


          改為:
          String readoneline;
          while ((readoneline = br.readLine()) != null) {
          System.out.println(readoneline);
          }
          可以正確讀出  回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀?。? 2010-08-06 16:15 董澤榛

          同意你的看法@fofo
            回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀取) 2011-11-30 11:58 alexyang

          行讀取時貌似代碼有問題
          while((l = br.read()) != -1){
          readoneline = br.readLine();
          System.out.println(readoneline);
          }


          改為:
          String readoneline;
          while ((readoneline = br.readLine()) != null) {
          System.out.println(readoneline);
          }
          可以正確讀出
          -------------------------------------
          以上兩種寫法都有問題。
          第一種會丟失每行第一個字符,
          第二種會丟失第一行。  回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀取) 2011-11-30 12:12 alexyang

          抱歉,上面弄錯了,
          while ((readoneline = br.readLine()) != null) {
          readoneline = new String(readoneline.getBytes(), "UTF8");

          之前寫成了

          while ((readoneline = br.readLine()) != null) {
          readoneline = new String(br.readLine().getBytes(), "UTF8");

          br.readLine()又讀了一行。
            回復  更多評論   

          # re: java文件讀取。(單字節讀取和按行讀取讀?。未登錄] 2012-05-14 16:01 Erica

          就是啊,原本的錯誤會把每行第一個字符給去掉了@fofo
            回復  更多評論   

          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 娱乐| 许昌县| 永安市| 祥云县| 汉寿县| 诸城市| 泽库县| 三门峡市| 晋州市| 灵宝市| 涡阳县| 溆浦县| 邹城市| 榆林市| 丁青县| 什邡市| 丰都县| 抚州市| 永康市| 大同市| 正蓝旗| 延长县| 柘城县| 兴和县| 神木县| 正镶白旗| 北川| 昌乐县| 伊宁市| 玉环县| 肃北| 信丰县| 乌海市| 慈利县| 宁强县| 曲松县| 玉龙| 伊吾县| 兴安盟| 石台县| 建德市|