<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                這幾天再次學習了IO的相關內容,感覺比以前的思路更加清晰了點。 IO按照流的分類可以分為字節流(XXXStream)和字符流(XXXRreader、XXXWriter)。 字符流主要是操作文本文件,這個在讀取文本文件時,比較常用寫。 因此下面是關于字符流的一些讀取方法。 FileWriter的方法: ~~~ import java.io.*; public class FileWriterDemo{ public static void main(String args[]){ //創建對象,傳入一個true,表明不覆蓋文件,在文件后面繼續添加內容。 FileWriter fileWriter = null; try{ fileWriter = new FileWriter("demo.txt",true); fileWriter.write("hello"); }catch(IOException e){ System.out.println("catch:"+e.toString()); }finally{ try{ if(fileWriter!=null) fileWriter.close(); }catch(Exception e){ System.out.println("----"+e.toString()); } } } } ~~~ FileReader的方法 ~~~ /** 總結兩種讀取文件內容的方法。 */ import java.io.*; import java.lang.*; public class FileReaderDemo{ public static void main(String args[]){ String content = ReadByCharArray("demo.txt"); System.out.println(content); } //通過Read()方法來一個字符一個字符的讀取 public static String ReadByOne(String fileName){ FileReader fileReader = null; StringBuffer sb = null; try{ fileReader = new FileReader(fileName); sb = new StringBuffer(); int ch = 0; while((ch=fileReader.read())!=-1){ sb.append((char)ch); } }catch(IOException e){ System.out.println("catch:"+e.toString()); }finally{ try{ if(fileReader!=null) fileReader.close(); }catch(Exception e){ System.out.println("----"+e.toString()); } } return sb.toString(); } //通過read(char[] ch)方法來讀取字符數組 public static String ReadByCharArray(String fileName){ FileReader fileReader = null; String str = null; try{ fileReader = new FileReader(fileName); char[] ch = new char[1024]; int num = 0; while((num=fileReader.read(ch))!=-1){ str = new String(ch,0,num); } }catch(IOException e){ System.out.println("catch:"+e.toString()); }finally{ try{ if(fileReader!=null) fileReader.close(); }catch(Exception e){ System.out.println("----"+e.toString()); } } return str; } } ~~~ 帶緩沖區的字符流BufferedReader及BufferedWriter的用法 ~~~ /** 為了提高文件的讀寫效率,java封裝一個BufferReader和bufferWriter類。 作為文件的緩沖 BufferReader:從字符輸入流中讀取文本,緩沖各個字符,從而實現字符、數組和行的高效讀取。 BufferWriter: 將文本寫入字符輸出流,緩沖各個字符,從而提供單個字符、數組和字符串的高效寫入。 */ import java.io.*; public class BufferedReaderDemo{ public static void main(String args[]){ boolean flag = copyByBuffered("demo.txt","buf.txt"); System.out.println("復制成功:"+flag); } //通過ReadLine()方法來讀取文件的一行數據 public static String ReadByReadLine(String fileName){ FileReader fileReader = null; StringBuffer sb = null; BufferedReader bufr = null; try{ fileReader = new FileReader(fileName); bufr = new BufferedReader(fileReader); sb = new StringBuffer(); String line = null; while((line=bufr.readLine())!=null){ sb.append(line); } }catch(IOException e){ System.out.println("catch:"+e.toString()); }finally{ try{ if(bufr!=null) bufr.close(); }catch(Exception e){ System.out.println("----"+e.toString()); } } return sb.toString(); } public static boolean copyByBuffered(String readFile,String writeFile){ boolean flag = false; BufferedReader bufr = null; BufferedWriter bufw = null; try{ //定義BufferedReader緩沖區,讀取文件流 bufr = new BufferedReader(new FileReader(readFile)); //定義BufferedWriter緩沖區,向指定文件中寫入。 bufw = new BufferedWriter(new FileWriter(writeFile)); String line = null; while((line=bufr.readLine())!=null){ bufw.write(line); bufw.flush(); flag =true; } }catch(IOException e){ e.toString(); }finally{ try{ if(bufr!=null&&bufw!=null){ bufr.close(); bufw.close(); } }catch(Exception e){ } } return flag; } } ~~~ 模擬BufferedReader中readLine()的實現方法 ~~~ /** 自定義一個MyBufferedReader類,模擬其中的readLine()方法。 一次讀取一行數據,這個是基于read()方法來實現的。 自定義實現原理: 1、通過FileReader中的read()一個個讀取文件中的字符。 2、將讀取的字符存到StringBuilder中。 3、當讀到\r時,不存入StringBuilder中,繼續向下讀取。 當\n時返回字符串, 4、為了簡便,所有異常都拋出 這種自定義類,稱為裝飾設計模式 */ import java.io.*; class myBufferedReader{ private FileReader fr; public myBufferedReader(FileReader fr){ this.fr = fr; } public String myReadLine()throws IOException{ StringBuilder sb = new StringBuilder(); int ch = 0; while((ch=fr.read())!=-1){ if(ch=='\r') continue; if(ch=='\n') return sb.toString(); sb.append((char)ch); } if(sb.length()!=0) return sb.toString(); //讀取到最后,返回空 return null; } //關閉流 public void myClose()throws IOException{ fr.close(); } } public class MyBufferedReaderDemo{ public static void main(String args[])throws IOException{ myBufferedReader mbr = new myBufferedReader(new FileReader("demo.txt")); String line = null; while((line=mbr.myReadLine())!=null){ System.out.println(line); } mbr.myClose(); } } ~~~ 模擬LineNumberReader中getLineNumber()的實現方法 ~~~ /** 模擬一個帶行號的文件讀取緩沖區。 實現思路: 1、mySetLineNumber(int number)方法用于設置從第number開始計數。 2、myGetLineNumber()獲取讀取文件的行號。 3、定義一個public int number = 0; 4、當遇到\n時,代表這行結束number++; */ import java.io.*; class myLineNumber extends myBufferedReader{ private int number=0; public myLineNumber(FileReader fr){ super(fr); } public void mySetLineNumber(int number){ this.number = number; } public int myGetLineNumber(){ return this.number; } public String myReadLine()throws IOException{ number++; return super.myReadLine(); } } public class LineNumberDemo{ public static void main(String []args)throws IOException{ myLineNumber mln = new myLineNumber(new FileReader("FileReaderDemo.java")); String line = null; mln.mySetLineNumber(20); while((line = mln.myReadLine())!=null){ System.out.println(mln.myGetLineNumber()+":"+line); } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看