java實現(xiàn)文本復(fù)制功能
本文實例為大家分享了java實現(xiàn)文本復(fù)制的具體代碼,供大家參考,具體內(nèi)容如下
*字符流(讀,寫)
*緩沖字符流(讀,寫)
文本復(fù)制功能:
package cn.yunhe.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; public class FileCopy { public static void main(String[] args) throws IOException { copyMethod(); } /** * 文本復(fù)制功能 * 1,找到需要復(fù)制的文本路徑,創(chuàng)建字符流讀取對象 * 2,將字符流讀取對象放入緩沖字符流中,為了方便一行一行讀取 * 3,找到需要復(fù)制到的文本路徑,創(chuàng)建寫入字符流, * 4,將寫入字符流放在緩沖字符流中,為了方便可以進行字符串的直接寫入 * 5,使用while循環(huán)進行對象的讀取,每循環(huán)一次讀一行,將讀取的內(nèi)容存放在定義好的字符串類型中,因為使用 * 緩沖字符流讀取的內(nèi)容返回的是字符串類型,當(dāng)返回值為null時,讀取完畢 * 6,在循環(huán)中將讀取的內(nèi)容使用寫入緩沖字符流進行寫入到緩沖字符流中,每寫一次,就使用flush()刷新一次 * 7,最后將所有流關(guān)閉 * @throws IOException */ public static void copyMethod() throws IOException { Reader rd=new FileReader("E:/coyp.txt");//創(chuàng)建一個字符流讀取對象 BufferedReader br=new BufferedReader(rd);//創(chuàng)建一個緩沖字符流讀取對象,參數(shù)傳將要緩沖的字符流對象 Writer wt=new FileWriter("E:/coyp01.txt");//創(chuàng)建一個字符流寫入對象 BufferedWriter bw=new BufferedWriter(wt);//創(chuàng)建一個緩沖字符流寫入對象 String str=null;//按行讀取,str存放讀取的內(nèi)容 while((str=br.readLine())!=null) {//使用while循環(huán)每次讀取一行,將每次讀取的內(nèi)容存放在str中 bw.write(str);//使用緩沖字符流寫入內(nèi)容,可以寫字符串,將每次讀取的內(nèi)容寫入BufferedWriter緩沖字符流中 bw.flush();//每次進行刷新一次 } //關(guān)閉流 bw.close(); wt.close(); br.close(); rd.close(); } }
以上就是本文的全部內(nèi)容,小編再為大家分享兩段代碼:Java實現(xiàn)簡單文本文件復(fù)制
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class TextFileCopy { public static void main(String[] args) { FileReader reader = null; FileWriter writer = null; try { // 創(chuàng)建文件輸入輸出流 reader = new FileReader("F:\\電子文檔\\各種JDBC連接.txt"); writer = new FileWriter("F:\\test.txt"); int flag = 0; // 從輸入流讀取內(nèi)容使用輸出流輸出 while ((flag = reader.read()) != -1) { writer.write(flag); } System.out.println("復(fù)制文本成功"); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); // 關(guān)閉文件輸入流 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (writer != null) { try { writer.close(); // 關(guān)閉文件輸出流 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
用java實現(xiàn)文件的復(fù)制功能:
通過選擇合適的下列流進行文件的復(fù)制
a)字符流(FileWriter FileReader)
b)字節(jié)流(FileInputStream,FileOutputStream)
如下需求,選擇合適的流完成操作:
文件復(fù)制的邏輯:循環(huán)的讀取舊文件的數(shù)據(jù),循環(huán)的寫出到新文件里。
1)圖片的復(fù)制,把用戶輸入的路徑代表的圖片復(fù)制到同目錄,文件名改為原文件名加_new。
例如:test1.png--》new_test1.png
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /**通過選擇合適的下列流進行文件的復(fù)制 a)字符流(FileWriter FileReader) b)字節(jié)流(FileInputStream,FileOutputStream) 如下需求,選擇合適的流完成操作: 文件復(fù)制的邏輯:循環(huán)的讀取舊文件的數(shù)據(jù),循環(huán)的寫出到新文件里。 1)圖片的復(fù)制,把用戶輸入的路徑代表的圖片復(fù)制到同目錄,文件名改為原文件名加_new。 例如:test1.png--》new_test1.png * * */ public class Test2 { public static void main(String[] args) { copfile(); } public static void copfile(){ File filein=new File("src\\day17\\test1.png"); File fileout=new File("src\\day17\\new_test1.png"); byte[] buffer=new byte[1024]; int temp=0; FileInputStream fis=null; FileOutputStream fos=null; try { fis=new FileInputStream(filein); fos=new FileOutputStream(fileout); while((temp=fis.read(buffer))!=-1){ fos.write(buffer, 0, temp); } fos.flush(); System.out.println("copy完成!??!"); } catch (FileNotFoundException e) { e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally{ if(fos!=null){ try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } if(fis!=null){ try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis Plus之實現(xiàn)動態(tài)排序方式
這篇文章主要介紹了MyBatis Plus之實現(xiàn)動態(tài)排序方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02聊聊java中一些減少if else 的編碼習(xí)慣的方法
這篇文章主要介紹了聊聊java中一些減少if else 的編碼習(xí)慣的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Intellij IDEA 2017.3使用Lombok及常用注解介紹
這篇文章主要介紹了Intellij IDEA 2017.3使用Lombok及常用注解介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09詳解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)
這篇文章主要介紹了詳解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07使用SpringBoot進行身份驗證和授權(quán)的示例詳解
在廣闊的 Web 開發(fā)世界中,身份驗證是每個數(shù)字領(lǐng)域的守護者,在本教程中,我們將了解如何以本機方式保護、驗證和授權(quán) Spring-Boot 應(yīng)用程序的用戶,并遵循框架的良好實踐,希望對大家有所幫助2023-11-11Java零基礎(chǔ)教程之do-while循環(huán)語句實例
Java中的do-while循環(huán)是一種后測試循環(huán)語句,它類似于while循環(huán),但它先執(zhí)行循環(huán)體中的代碼,然后再進行條件判斷,無論條件是否滿足,至少會執(zhí)行一次循環(huán)體中的代碼,這篇文章主要給大家介紹了關(guān)于Java零基礎(chǔ)教程之do-while循環(huán)語句的相關(guān)資料,需要的朋友可以參考下2024-09-09