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

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

 更新時間:2018年02月28日 09:26:01   投稿:laozhang  
本篇文章通過實例給大家詳細(xì)講述Java IO文件復(fù)制的相關(guā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個字節(jié)大小的內(nèi)存給buff
      int num=0;
      while((num=in.read(buff))!=-1){ //判斷每次讀取的最大字節(jié)數(shù)是否為1024
        out.write(buff,0,num);
//        out.write(buff); //這樣也可以,不過容易造成文件內(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(); //在命令行打印異常信息在程序中出錯的位置及原因
    }
    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(); //在命令行打印異常信息在程序中出錯的位置及原因
    }
    catch(IOException e){
      e.printStackTrace();
    }
  }
}

說明:

如果想以追加文件內(nè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熱重啟配置知識點內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 一文搞懂spring boot本地事務(wù)@Transactional參數(shù)

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

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

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

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

    springboot集成tkmapper及基本使用教程

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

    Java通過反射機制將對象封裝成JSON和JsonArray格式

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

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

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

    SpringBoot整合MongoDB流程詳解

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

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

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

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

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

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

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

最新評論