欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(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流主要分為兩大類(lèi),分別是字節(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); //寫(xiě)入字符流
      BufferedWriter bufferedWriter=new BufferedWriter(fileWrite); //把要輸入的字符流放入緩存
      String s="";
      String str = "";
      while((s=bufferedReader.readLine())!=null){ //判斷文件字符流是否讀取完畢
        bufferedWriter.write(s); //字符流緩存寫(xiě)入文件
        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)文章

  • SpringBoot熱重啟配置詳解

    SpringBoot熱重啟配置詳解

    在本篇文章里小編給大家分享的是關(guān)于SpringBoot熱重啟配置知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 一文搞懂spring boot本地事務(wù)@Transactional參數(shù)

    一文搞懂spring boot本地事務(wù)@Transactional參數(shù)

    這篇文章主要介紹了spring boot本地事務(wù)@Transactional參數(shù)詳解,本文通過(guò)示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 簡(jiǎn)述springboot及springboot cloud環(huán)境搭建

    簡(jiǎn)述springboot及springboot cloud環(huán)境搭建

    這篇文章主要介紹了簡(jiǎn)述springboot及springboot cloud環(huán)境搭建的方法,包括spring boot 基礎(chǔ)應(yīng)用環(huán)境搭建,需要的朋友可以參考下
    2017-07-07
  • springboot集成tkmapper及基本使用教程

    springboot集成tkmapper及基本使用教程

    tk.mybatis可以節(jié)省程序員的大部分時(shí)間,對(duì)于程序員來(lái)說(shuō)關(guān)于一張表的操作無(wú)非就是增刪改查,tk.mybatis提供了一些基本操作的SQL語(yǔ)句,比如說(shuō)按表的主鍵查詢(xún)、刪除等基本操作,我們接下來(lái)就來(lái)介紹一些springboot集成tkmapper及基本使用
    2022-11-11
  • Java通過(guò)反射機(jī)制將對(duì)象封裝成JSON和JsonArray格式

    Java通過(guò)反射機(jī)制將對(duì)象封裝成JSON和JsonArray格式

    這篇文章主要介紹了Java通過(guò)反射機(jī)制將對(duì)象封裝成JSON和JsonArray格式,JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)實(shí)體類(lèi),都能夠知道這個(gè)類(lèi)的所有屬性和方法,需要的朋友可以參考下
    2023-10-10
  • JSON數(shù)據(jù)轉(zhuǎn)換成Java對(duì)象的方法

    JSON數(shù)據(jù)轉(zhuǎn)換成Java對(duì)象的方法

    就目前來(lái)講,將Java對(duì)象轉(zhuǎn)換成JSON對(duì)象還是相當(dāng)簡(jiǎn)單的,但是 將JSON對(duì)象轉(zhuǎn)換成Java對(duì)象,就相對(duì)比較復(fù)雜了些
    2014-03-03
  • SpringBoot整合MongoDB流程詳解

    SpringBoot整合MongoDB流程詳解

    這篇文章主要介紹了SpringBoot整合MongoDB流程詳解,MongoDB是一種面向文檔的數(shù)據(jù)庫(kù)管理系統(tǒng),它是一個(gè)介于關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)之間的產(chǎn)品,MongoDB支持一種類(lèi)似JSON的BSON數(shù)據(jù)格式,既可以存儲(chǔ)簡(jiǎn)單的數(shù)據(jù)格式,也可以存儲(chǔ)復(fù)雜的數(shù)據(jù)類(lèi)型,需要的朋友可以參考下
    2024-01-01
  • Spring超詳細(xì)講解注解開(kāi)發(fā)

    Spring超詳細(xì)講解注解開(kāi)發(fā)

    Spring是輕代碼而重配置的框架,配置比較繁重,影響開(kāi)發(fā)效率,所以注解開(kāi)發(fā)是一種趨勢(shì)。本文將通過(guò)示例為大家詳細(xì)講講Spring如何實(shí)現(xiàn)注解開(kāi)發(fā),感興趣的可以學(xué)習(xí)一下
    2022-08-08
  • SSM框架前后端信息交互實(shí)現(xiàn)流程詳解

    SSM框架前后端信息交互實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了SSM框架前后端信息交互實(shí)現(xiàn)流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Mybatis實(shí)現(xiàn)數(shù)據(jù)的增刪改查實(shí)例(CRUD)

    Mybatis實(shí)現(xiàn)數(shù)據(jù)的增刪改查實(shí)例(CRUD)

    本篇文章主要介紹了Mybatis實(shí)現(xiàn)數(shù)據(jù)的增刪改查實(shí)例(CRUD),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05

最新評(píng)論