Java_IO_实例总结(一)

本文详细介绍了Java IO中的字节流,包括读取文件、写入文件(注意会覆盖原有内容)、追加数据到文件末尾以及文件的拷贝操作。在文件拷贝部分,特别提到了使用缓冲区进行高效的数据传输。

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

1、字节流对文件数据的读取

/*
 * 演示IO读取文件数据操作
 */
public class IoReadTest {
	public static void main(String[] args) throws IOException   {
		//创建一个文件字节输入流
		FileInputStream in = new FileInputStream("D:\\test.txt");
		//定义一个int类型的变量,记住每次读取的一个字节
		int b = 0 ;
		while(true){
			b = in.read();//变量b记住每一个字节
			if(b==-1){//如果读取的字节为-1,表示已经读完,跳出循环
				break;
			}
			System.out.println(b);//否则将b打印出
		}
		in.close();
		
	}
}


2、 演示将数据写入文件

/*
 * 演示写入文件
 */
public class TestWrite {
	//创建一个文件字节输出流
	public static void main(String[] args) throws IOException {
		FileOutputStream out = new FileOutputStream("test.txt");
		String str = "我爱Java!";
		byte[] b = str.getBytes();
		for(int i = 0 ;i<b.length;i++){
			out.write(b[i]);
		}
	}

}

注意:如果通过FileOutputStream向文件中写入数据,那么该文件中的数据,先被清空,然后再写入数据。

3、演示如何将数据追加到文件末尾

/*
 * 演示将数据追加到文件末尾
 */
public class TestWrite {
	
	public static void main(String[] args) throws Exception {
		//创建一个文件字节输出流
		FileOutputStream out  = new FileOutputStream("test.txt",true);
		
		
		String str = "欢迎你";
		byte[] b = str.getBytes();
		for(int i = 0 ;i<b.length;i++){
			out.write(b[i]);
		}
		out.close();
	}

}

注意:

通常将关闭IO操作放到finally中(固定写法):


4、文件的拷贝

/*
 * 演示文件的拷贝
 */
public class TestWrite {
	
	public static void main(String[] args) throws IOException{
		//创建一个字节输入流,读取当前目录下source文件夹中的mp3文件
		InputStream in  = new FileInputStream("d:\\source\\test.txt");
		//创建一个字节输出流,用于将读取的数据写入target目录下的文件中
		OutputStream out = new FileOutputStream("d:\\target\\test.txt");
		
		int len;//定义一个整型变量,记住每次读取的一个字节
		long beginTime = System.currentTimeMillis();//获取拷贝前系统的当前时间
		while((len= in.read())!=-1){
			out.write(len);//将读取的字节,写入文件
		}
		long endTime =System.currentTimeMillis();//获取拷贝后的系统时间
		System.out.println("拷贝文件所消耗的时间是:"+(endTime-beginTime)+"ms");
		in.close();
		out.close();
	
	}

}

5、文件拷贝增强:字节流的缓冲区

	public static void main(String[] args) throws IOException{
		//创建一个字节输入流,用于读取当前目录下scource文件夹的mp4文件
		FileInputStream in = new FileInputStream("D:\\source\\test.mp4");
		//创建一个字节出出流,用于将读入的数据写入到target文件夹中
		FileOutputStream out = new FileOutputStream("D:\\target\\test.mp4");
		//用缓冲区读写文件
		byte[] buff = new byte[1024];
		int len;//用于记录读取输入缓冲区的字节数
		long begintime  = System.currentTimeMillis();
		while((len = in.read(buff))!=-1){//判断是否读到文件末尾
			out.write(buff,0,len);//从第一个字节开始,向文件写入len个字节
		}
		long endtime = System.currentTimeMillis();
		System.out.println("拷贝文件的所需时间:"+(endtime - begintime));
		in.close();
		out.close();
	}




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值