实例讲述Java IO文件复制

2025-05-29 0 56

前言:IO流主要分为两大类,分别是字节流与字符流

注意:

1、音频文件、图片、视频(范围广),就用字节流

2、只涉及到文本的,就用字符流

使用字节流复制文本内容(其他文件也可以)

代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39
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"); //目标文件

OutputStream out=new FileOutputStream(outFile); //文件输出流

byte[] buff=new byte[1024]; //创建缓冲区,分配1024个字节大小的内存给buff

int num=0;

while((num=in.read(buff))!=-1){ //判断每次读取的最大字节数是否为1024

out.write(buff,0,num);

// out.write(buff); //这样也可以,不过容易造成文件内容不正确

out.flush(); //刷新缓冲区

String s=new String(buff);

System.out.println("文件内容复制成功");

System.out.println("文件复制内容为\\n"+s);

}

in.close(); //关闭输入流

out.close(); //关闭输出流

// inFile.delete(); //删除源文件

// outFile.renameTo(new File("reName.txt")); //输出文件重命名

}

catch(FileNotFoundException e){

e.printStackTrace(); //在命令行打印异常信息在程序中出错的位置及原因

}

catch(IOException e){

e.printStackTrace();

}

}

}

使用字符流复制文本内容(仅限文本文件)

代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41
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"); //目标文件

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("文件复制内容为\\n"+str);

//关闭输入输出流

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();

}

}

}

说明:

如果想以追加文件内容,而不是覆盖的方式来复制文本内容,则修改如下

OutputStream out=new FileOutputStream(outFile,true); //字节流
FileWriter fileWrite=new FileWriter(outFile,true); //字符流

如果要在字符流指定缓存区大小,则修改如下

BufferedWriter bufferedWriter=new BufferedWriter(fileWrite,1024);

原文链接:https://www.idaobin.com/archives/761.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 实例讲述Java IO文件复制 https://www.kuaiidc.com/112405.html

相关文章

发表评论
暂无评论