最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實(shí)例講述Java IO文件復(fù)制

 更新時(shí)間:2018年02月28日 09:26:01   投稿:laozhang  
本篇文章通過(guò)實(shí)例給大家詳細(xì)講述Java IO文件復(fù)制的相關(guān)知識(shí)點(diǎn),需要的讀者們學(xué)習(xí)下吧。

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

注意:

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

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

使用字節(jié)流復(fù)制文本內(nèi)容(其他文件也可以)

代碼如下:

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"); //目標(biāo)文件
      OutputStream out=new FileOutputStream(outFile); //文件輸出流
      byte[] buff=new byte[1024]; //創(chuàng)建緩沖區(qū),分配1024個(gè)字節(jié)大小的內(nèi)存給buff
      int num=0;
      while((num=in.read(buff))!=-1){ //判斷每次讀取的最大字節(jié)數(shù)是否為1024
        out.write(buff,0,num);
//        out.write(buff); //這樣也可以,不過(guò)容易造成文件內(nèi)容不正確
        out.flush(); //刷新緩沖區(qū)
        String s=new String(buff);
        System.out.println("文件內(nèi)容復(fù)制成功");
        System.out.println("文件復(fù)制內(nèi)容為\n"+s);
      }
      in.close(); //關(guān)閉輸入流
      out.close(); //關(guān)閉輸出流
//      inFile.delete(); //刪除源文件
//      outFile.renameTo(new File("reName.txt")); //輸出文件重命名
    }
    catch(FileNotFoundException e){
      e.printStackTrace(); //在命令行打印異常信息在程序中出錯(cuò)的位置及原因
    }
    catch(IOException e){
      e.printStackTrace();
    }
  }
}

使用字符流復(fù)制文本內(nèi)容(僅限文本文件)

代碼如下:

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"); //目標(biāo)文件
      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("文件復(fù)制內(nèi)容為\n"+str);
      //關(guān)閉輸入輸出流
      fileReader.close();bufferedReader.close();
      fileWrite.close();bufferedWriter.close();
//      inFile.delete(); //刪除源文件
//      outFile.renameTo(new File("reName.txt")); //輸出文件重命名
    }
    catch(FileNotFoundException e){
      e.printStackTrace(); //在命令行打印異常信息在程序中出錯(cuò)的位置及原因
    }
    catch(IOException e){
      e.printStackTrace();
    }
  }
}

說(shuō)明:

如果想以追加文件內(nèi)容,而不是覆蓋的方式來(lái)復(fù)制文本內(nèi)容,則修改如下

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

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

BufferedWriter bufferedWriter=new BufferedWriter(fileWrite,1024);

相關(guān)文章

  • Java微信授權(quán)登錄小程序接口流程

    Java微信授權(quán)登錄小程序接口流程

    微信授權(quán)登錄小程序的流程是一個(gè)涉及前端和后端交互的過(guò)程,主要目的是讓用戶能夠使用微信賬號(hào)快速登錄小程序,避免重復(fù)輸入用戶名和密碼,下面給大家介紹Java微信授權(quán)登錄小程序接口流程,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • javaweb上傳下載實(shí)例完整版解析(上)

    javaweb上傳下載實(shí)例完整版解析(上)

    這篇文章主要為大家詳細(xì)解析了javaweb上傳下載實(shí)例,本文重點(diǎn)在于文件上傳功能的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • spring.factories文件的解析源碼API機(jī)制詳解

    spring.factories文件的解析源碼API機(jī)制詳解

    通過(guò)本文深入探討Spring?Boot的背景歷史、業(yè)務(wù)場(chǎng)景、功能點(diǎn)以及底層原理,使讀者對(duì)Spring?Boot有了更深入的了解,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Spring實(shí)戰(zhàn)之Bean的作用域request用法分析

    Spring實(shí)戰(zhàn)之Bean的作用域request用法分析

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean的作用域request用法,結(jié)合實(shí)例形式分析了spring中Bean的request作用域相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • java實(shí)現(xiàn)雙向鏈表的增刪改

    java實(shí)現(xiàn)雙向鏈表的增刪改

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)雙向鏈表的增刪改,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • JavaWeb登陸功能實(shí)現(xiàn)代碼

    JavaWeb登陸功能實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了JavaWeb登陸功能實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 從內(nèi)存地址解析Java的static關(guān)鍵字的作用

    從內(nèi)存地址解析Java的static關(guān)鍵字的作用

    這篇文章主要介紹了從內(nèi)存地址解析Java的static關(guān)鍵字的作用,包括靜態(tài)成員變量和靜態(tài)方法等重要內(nèi)容,需要的朋友可以參考下
    2015-10-10
  • 關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn)

    關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn)

    這篇文章主要介紹了關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn),@ConfigurationProperties主要作用就是將prefix屬性指定的前綴配置項(xiàng)的值綁定到這個(gè)JavaBean上?,通過(guò)指定的前綴,來(lái)綁定配置文件中的配置,需要的朋友可以參考下
    2023-05-05
  • java中實(shí)現(xiàn)自定義注解方式

    java中實(shí)現(xiàn)自定義注解方式

    注解是Java中的一種元數(shù)據(jù),可以修飾方法、類、參數(shù)和包等,自定義注解需要public修飾符、@interface關(guān)鍵字,以及注解名稱和類型元素,元注解如@Target、@Retention等用于修飾注解,指定注解的適用范圍和生命周期,自定義注解的使用涉及到通過(guò)反射解析注解
    2024-11-11
  • Java實(shí)現(xiàn)貪吃蛇游戲

    Java實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評(píng)論

牙克石市| 随州市| 文山县| 普兰店市| 惠水县| 应城市| 宜宾市| 左贡县| 吴旗县| 兰溪市| 延川县| 枣阳市| 阿城市| 治县。| 高台县| 涿州市| 白朗县| 抚松县| 海淀区| 宝鸡市| 任丘市| 梁河县| 洛浦县| 淅川县| 滨海县| 铁岭县| 灵台县| 清苑县| 抚松县| 樟树市| 邵武市| 波密县| 尉犁县| 象山县| 紫金县| 繁峙县| 宁陵县| 苏州市| 黄冈市| 桐城市| 商河县|