java實(shí)現(xiàn)文本復(fù)制功能
本文實(shí)例為大家分享了java實(shí)現(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)建字符流讀取對(duì)象
* 2,將字符流讀取對(duì)象放入緩沖字符流中,為了方便一行一行讀取
* 3,找到需要復(fù)制到的文本路徑,創(chuàng)建寫入字符流,
* 4,將寫入字符流放在緩沖字符流中,為了方便可以進(jìn)行字符串的直接寫入
* 5,使用while循環(huán)進(jìn)行對(duì)象的讀取,每循環(huán)一次讀一行,將讀取的內(nèi)容存放在定義好的字符串類型中,因?yàn)槭褂?
* 緩沖字符流讀取的內(nèi)容返回的是字符串類型,當(dāng)返回值為null時(shí),讀取完畢
* 6,在循環(huán)中將讀取的內(nèi)容使用寫入緩沖字符流進(jìn)行寫入到緩沖字符流中,每寫一次,就使用flush()刷新一次
* 7,最后將所有流關(guān)閉
* @throws IOException
*/
public static void copyMethod() throws IOException {
Reader rd=new FileReader("E:/coyp.txt");//創(chuàng)建一個(gè)字符流讀取對(duì)象
BufferedReader br=new BufferedReader(rd);//創(chuàng)建一個(gè)緩沖字符流讀取對(duì)象,參數(shù)傳將要緩沖的字符流對(duì)象
Writer wt=new FileWriter("E:/coyp01.txt");//創(chuàng)建一個(gè)字符流寫入對(duì)象
BufferedWriter bw=new BufferedWriter(wt);//創(chuàng)建一個(gè)緩沖字符流寫入對(duì)象
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();//每次進(jìn)行刷新一次
}
//關(guān)閉流
bw.close();
wt.close();
br.close();
rd.close();
}
}
以上就是本文的全部?jī)?nèi)容,小編再為大家分享兩段代碼:Java實(shí)現(xiàn)簡(jiǎ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實(shí)現(xiàn)文件的復(fù)制功能:
通過選擇合適的下列流進(jìn)行文件的復(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;
/**通過選擇合適的下列流進(jìn)行文件的復(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();
}
}
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深入解析Spring Bean初始化時(shí)和銷毀時(shí)的擴(kuò)展點(diǎn)
在Bean進(jìn)行初始化或者銷毀的時(shí)候,如果我們需要做一些操作,比如加載和銷毀一些資源或者執(zhí)行一些方法時(shí),那么就可以使用Spring提供的一些擴(kuò)展,今天主要分享初始化Bean時(shí)的三種方式和銷毀Bean時(shí)的三種方式,需要的朋友可以參考下2023-08-08
SpringBoot整合WebService的實(shí)戰(zhàn)案例
WebService是一個(gè)SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語言,平臺(tái)等,可以實(shí)現(xiàn)不同的語言間的相互調(diào)用,這篇文章主要給大家介紹了關(guān)于SpringBoot整合WebService的相關(guān)資料,需要的朋友可以參考下2024-07-07
SpringCloud使用Ribbon實(shí)現(xiàn)負(fù)載均衡的流程步驟
在微服務(wù)架構(gòu)中,負(fù)載均衡是一項(xiàng)關(guān)鍵的技術(shù),它可以確保各個(gè)服務(wù)節(jié)點(diǎn)間的負(fù)載分布均勻,提高整個(gè)系統(tǒng)的穩(wěn)定性和性能,Spring Cloud 中的 Ribbon 就是一種負(fù)載均衡的解決方案,本文將深入探討 Ribbon 的原理和在微服務(wù)中的應(yīng)用,需要的朋友可以參考下2024-02-02
Java8如何將Array轉(zhuǎn)換為Stream的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java8如何將Array轉(zhuǎn)換為Stream的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
java 中Executor, ExecutorService 和 Executors 間的不同
這篇文章主要介紹了java 中Executor, ExecutorService 和 Executors 間的不同的相關(guān)資料,需要的朋友可以參考下2017-06-06
Java實(shí)時(shí)監(jiān)控日志文件并輸出的方法詳解
這篇文章主要給大家介紹了關(guān)于Java實(shí)時(shí)監(jiān)控日志文件并輸出的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06
SpringBoot快速構(gòu)建應(yīng)用程序方法介紹
這篇文章主要介紹了SpringBoot快速構(gòu)建應(yīng)用程序方法介紹,涉及SpringBoot默認(rèn)的錯(cuò)誤頁面,嵌入式Web容器層面的約定和定制等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-11-11

