使用Java的IO流复制文件

本文介绍了Java的IO流,它是实现输入/输出的基础,可方便实现数据操作。Java将不同输入/输出源抽象为“流”,通过流让程序以相同方式访问不同源。IO流分输入、输出,又有字节流和字符流,还采用装饰器设计模式。此外还提及流的分类及给出复制文件代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在 Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述 为“流”(stream),通过流的方式允许Java程序使用相同的方式来访问不同的输入输出源。 stream是从起源(source)到接收(sink)的有序数据。Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入输出功能。IO(输入/输出)流是比较抽象的,看不到明显的运行效果,但输入和输出是所有程序都必需的部分。使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据、来自网络的数据)、用户输入数据;使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中和网络其他设备中。Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入流、输出流两种IO流,每种输入、输出流又可分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。除此之外Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流,其中节点流用于和底层的物理存储节点直接关联(不同的物理节点获取节点流的方式可能存在一定的差异),但程序可以把不同的物理节点流包装成统一的处理流,从而允许程序使用统一的输入、输出代码来读取不同的物理存储节点的资源。
下面是复制文件的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestDemo {
public static void main(String[] args) throws IOException {

	File source = new File("D:/测试文件/源文件.txt");
	File dest  = new File("D:/测试文件/源文件2.txt");
	
    CopyFile(source, dest);
}

public static void CopyFile(File source,File dest) throws IOException{
	
	FileInputStream in = new FileInputStream(source);
	FileOutputStream out = new FileOutputStream(dest);
	
	byte[] bs = new byte[1024];
	int count = 0;
	
	while ((count=in.read(bs, 0, bs.length))!=-1) {
		out.write(bs,0,count);
	}
	in.close();
	out.flush();
	out.close();
}

}

下面是结果图:
在这里插入图片描述

输入流和输出流是按照流的流向来分,都是从程序运行所在内存的角度来划分的。输入流:只可以读取数据,而不可以写入数据,由InputStream和 Reader作为基类;输出流:只可以写入数据,而不可以读取数据,由OutputStream和 Writer作为基类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值