Java-IO流课后作业练习题2

该代码示例展示了如何使用Java中的Data流进行文件操作。当test.txt不存在时,程序会创建文件并写入长整型数值10000;如果文件已存在,程序会读取数值,加1后再保存回文件。异常处理和流的关闭也得到了体现。

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

(Data 流)利用Data 流,完成下面操作:

1) 判断当前目录下是否存在一个test.txt的文件,如果该文件不存在,则往该文件中写入一个long 类型的数值:10000L

2) 如果该文件存在,则从该文件中读出数值,并把该数值加1 之后,再存回文件中。

package Ch03Homework;

import java.io.*;

public class DataStreamHomeWork {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//初始化字节流
		FileInputStream fis = null;
		BufferedInputStream bis = null;
		FileOutputStream fos = null;
		BufferedOutputStream bos = null;
		DataInputStream dis = null;
		DataOutputStream dos = null;
		//获得当前目录
		File f1 = new File(File.separator);
		String path = "test.txt";
		File f2 = new File(f1,path);
		try {
			//判断当前目录下是否存在一个test.txt的文件,如果该文件不存在
			if(f2.exists() == false) {
				fos = new FileOutputStream(f2,true);
				bos = new BufferedOutputStream(fos);
				dos = new DataOutputStream(bos);
				// 则往该文件中写入一个long 类型的数值:10000L
				dos.writeLong(10000);
				dos.flush();
				System.out.println("已保存到test.txt!");
			}else {
				//如果该文件存在,则从该文件中读出数值,并把该数值加1 之后,再存回文件中。 
				
				fis = new FileInputStream(f2);
				bis = new BufferedInputStream(fis);
				dis = new DataInputStream(bis);
				if(f2.length() != 0) {
					fos = new FileOutputStream(f2,true);
					bos = new BufferedOutputStream(fos);
					dos = new DataOutputStream(bos);
					long l = dis.readLong() + 1;
					//System.out.println(l);
					dos.writeLong(l);
					dos.flush();
					System.out.println("数值加一保存成功!");
				}
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			// 要求用try-catch-finally 处理异常,并且关闭流应放在finally 块中。
			try {
				if(dis != null)dis.close();
				if(dos != null)dos.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
		
	}

}

这段代码演示了文件的读写操作,并使用 DataInputStreamDataOutputStream 对文件中的数据进行读取和写入。下面对代码进行分析:

  1. 首先创建了几个输入输出流的对象:FileInputStreamBufferedInputStreamFileOutputStreamBufferedOutputStreamDataInputStreamDataOutputStream

  2. 通过指定文件名 "test.txt",构造一个 File 对象 f2,代表当前目录下的 "test.txt" 文件。

  3. 使用 exists() 方法检查文件是否存在,如果不存在,则创建文件输出流 fos、缓冲输出流 bos 和数据输出流 dos,然后写入一个 long 类型数值 10000 到文件中,刷新输出流,最后打印 "已保存到test.txt!"。

  4. 如果文件已经存在,则通过文件输入流 fis、缓冲输入流 bis 和数据输入流 dis 读取文件中的 long 类型数值。然后通过文件输出流 fos、缓冲输出流 bos 和数据输出流 dos 将读取到的数值加1后写回文件中,刷新输出流,最后打印 "数值加一保存成功!"。

  5. finally 块中,关闭输入输出流。

总体来说,这段代码展示了如何使用不同类型的流来读写文件中的数据,以及如何处理异常和确保流在使用完毕后被关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Ale-阿乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值