91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

實例講述Java IO文件復制

發布時間:2020-09-08 00:49:41 來源:腳本之家 閱讀:133 作者:laozhang 欄目:編程語言

前言:IO流主要分為兩大類,分別是字節流與字符流

注意:

1、音頻文件、圖片、視頻(范圍廣),就用字節流

2、只涉及到文本的,就用字符流

使用字節流復制文本內容(其他文件也可以)

代碼如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyFile {
  public static void main(String[] args) {
    try{
      File inFile=new File("src.txt"); //源文件
      InputStream in=new FileInputStream(inFile); //文件輸入流
      
      File outFile=new File("tar.txt"); //目標文件
      OutputStream out=new FileOutputStream(outFile); //文件輸出流
      byte[] buff=new byte[1024]; //創建緩沖區,分配1024個字節大小的內存給buff
      int num=0;
      while((num=in.read(buff))!=-1){ //判斷每次讀取的最大字節數是否為1024
        out.write(buff,0,num);
//        out.write(buff); //這樣也可以,不過容易造成文件內容不正確
        out.flush(); //刷新緩沖區
        String s=new String(buff);
        System.out.println("文件內容復制成功");
        System.out.println("文件復制內容為\n"+s);
      }
      in.close(); //關閉輸入流
      out.close(); //關閉輸出流
//      inFile.delete(); //刪除源文件
//      outFile.renameTo(new File("reName.txt")); //輸出文件重命名
    }
    catch(FileNotFoundException e){
      e.printStackTrace(); //在命令行打印異常信息在程序中出錯的位置及原因
    }
    catch(IOException e){
      e.printStackTrace();
    }
  }
}

使用字符流復制文本內容(僅限文本文件)

代碼如下:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyFile{
  public static void main(String[] args) {
    try{
      File inFile=new File("D:/src.txt"); //源文件
      FileReader fileReader=new FileReader(inFile); //讀取文件字符流
      BufferedReader bufferedReader=new BufferedReader(fileReader); //把讀取到的字符流放入緩存
      
      File outFile=new File("D:/tar.txt"); //目標文件
      FileWriter fileWrite=new FileWriter(outFile); //寫入字符流
      BufferedWriter bufferedWriter=new BufferedWriter(fileWrite); //把要輸入的字符流放入緩存
      String s="";
      String str = "";
      while((s=bufferedReader.readLine())!=null){ //判斷文件字符流是否讀取完畢
        bufferedWriter.write(s); //字符流緩存寫入文件
        bufferedWriter.newLine(); //按行讀取,遇到換行符則換行
        bufferedWriter.flush(); //刷新緩存
        str+=s;
      }
      System.out.println("文件復制內容為\n"+str);
      //關閉輸入輸出流
      fileReader.close();bufferedReader.close();
      fileWrite.close();bufferedWriter.close();
//      inFile.delete(); //刪除源文件
//      outFile.renameTo(new File("reName.txt")); //輸出文件重命名
    }
    catch(FileNotFoundException e){
      e.printStackTrace(); //在命令行打印異常信息在程序中出錯的位置及原因
    }
    catch(IOException e){
      e.printStackTrace();
    }
  }
}

說明:

如果想以追加文件內容,而不是覆蓋的方式來復制文本內容,則修改如下

OutputStream out=new FileOutputStream(outFile,true); //字節流
FileWriter fileWrite=new FileWriter(outFile,true); //字符流

如果要在字符流指定緩存區大小,則修改如下

BufferedWriter bufferedWriter=new BufferedWriter(fileWrite,1024);

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新巴尔虎右旗| 上蔡县| 财经| 丹寨县| 比如县| 博罗县| 长春市| 政和县| 乌兰县| 屏南县| 汉中市| 阿城市| 雷波县| 普洱| 连云港市| 衡阳县| 平远县| 尼玛县| 正宁县| 沂南县| 安溪县| 成武县| 虎林市| 嘉定区| 德清县| 宝应县| 襄垣县| 扶风县| 宁陕县| 青州市| 五常市| 长武县| 桐城市| 同德县| 会昌县| 杭锦后旗| 中超| 万安县| 高台县| 宜兴市| 屯昌县|