程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> IO流常見錯誤,io常見錯誤

IO流常見錯誤,io常見錯誤

編輯:JAVA綜合教程

IO流常見錯誤,io常見錯誤


   需求:使用IO流將一個文件的內容復制到另外一個文件中去

文件"good boy.txt"位於D盤根目錄下,要求將此文件的內容復制到c:\\myFile.txt中

代碼:

import java.io.*;

public classInputAndOutputFile{

  public static void main(String[]args){

    FileInputStream fis=null;

    FileOutPutStream fos=null;

    try{  //1.創建輸入流對象,負責讀取D:/good boy.txt文件

      fis=new FileInputStream("D:/good boy.txt");

      //2.創建輸出流對象

      fos=new FileOutputStream("C:/myFile.txt",true);

      //3.創建中轉站數組,存放每次讀取的內容

      byte[] words=new byte[1024];

      //4.通過循環實現文件讀寫

      inte len=-1;

      while((len=fis.read(words))!=-1){

      fos.write(words,0,len);

      }

      //5強制清理緩沖區

      fos.flush();

      System.out.println("復制完成,請查看文件!");

    }catch(FileNotFoundExcepton e){

      e.printStackTrace();

    }catch(IOException e){

      e.printStackTrace();

    }finally{
    //6.關閉流

    try{

      fis.close();

      fos.close();

    }catch(IOException e){

      e.printStackTrace();

    }

  }

}

常犯錯誤出現在while循環寫入的地方:

錯誤代碼:

while((fis.read())!=-1){    //錯誤之處在這裡:此時fis.read();已實現第一次讀寫,所以words中緩存的字符就少了第一位,導致結果錯誤。
  fis.read(words);//讀取文件

  fos.write(words,0,words.length);//寫入文件

}

    

    

    

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved