實例講述Java IO文件復(fù)制
前言: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)文章
一文搞懂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)境搭建的方法,包括spring boot 基礎(chǔ)應(yīng)用環(huán)境搭建,需要的朋友可以參考下2017-07-07Java通過反射機制將對象封裝成JSON和JsonArray格式
這篇文章主要介紹了Java通過反射機制將對象封裝成JSON和JsonArray格式,JAVA反射機制是在運行狀態(tài)中,對于任意一個實體類,都能夠知道這個類的所有屬性和方法,需要的朋友可以參考下2023-10-10JSON數(shù)據(jù)轉(zhuǎn)換成Java對象的方法
就目前來講,將Java對象轉(zhuǎn)換成JSON對象還是相當(dāng)簡單的,但是 將JSON對象轉(zhuǎn)換成Java對象,就相對比較復(fù)雜了些2014-03-03Mybatis實現(xiàn)數(shù)據(jù)的增刪改查實例(CRUD)
本篇文章主要介紹了Mybatis實現(xiàn)數(shù)據(jù)的增刪改查實例(CRUD),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05