黑马程序员__java_IO流问题

--------------- android培训、java培训、期待与您交流!---------------

package net.szpt;

import java.io.*;

public class DataTest {
	public static void main(String[] args) throws Exception {
		File f = new File("xxx.txt");
		if (f.exists()) {
			f.delete();
			f.createNewFile();
		} else {
			f.createNewFile();
		}
		// 一旦包装类的IO流关闭了。其被包装的IO流也就自动关闭。怎么验证。
		FileOutputStream foss = new FileOutputStream(f);
		BufferedOutputStream boss = new BufferedOutputStream(foss);
		DataOutputStream outt = new DataOutputStream(boss);
		outt.writeBytes("a");
		outt.writeUTF("abroad");
		outt.writeChars("abroad");
		outt.close();
		FileInputStream fiss = new FileInputStream(f);
		BufferedInputStream biss = new BufferedInputStream(fiss);
		DataInputStream iutt = new DataInputStream(biss);
		// System.out.println(iutt.readUTF());
		byte[] buff = new byte[1024];
		int len = iutt.read(buff);
		System.out.println(len);
		System.out.println(new String(buff, 0, len));
		iutt.close();
	}
}

这是个偶的简单的练习,发现了一些问题:

1、在Eclipse下运行,结果是-1,说明文件里面没有内容。怎么回事?

       在执行包装类的时候,莫非程序已经关闭了?但是我是先执行写的操作之后才关闭的啊。原来是关闭流执行的顺序不一样。对于输出流:先是最外面的包装类—>里面的—>最里面的。那就改成:  

outt.close();boss.close();foss.close();

如果我再把中间的那个流和最后一个流的顺序颠倒的话,推断它应该是错误的,但是结果是正常的。这说明上面的疑问就已经算是解决了。

2、红色部分执行时发生:Exception in thread "main"java.io.EOFException。

       查看API发现这个方法是用来读入一个已使用 UTF-8 修改版格式编码的字符,而我的文本是没有UTF-8编码的格式。

3、在CMD命令下,我cd 到了工作空间的bin目录,然后执行:java net.szpt.DataTest竟然会报“类有找到”这个错误。于是我检查了classpath的设置。发现么有问题。再新建项目xxx,然后将下DataTest拷贝到这个项目下,也是建立一个同样的包:net.szpt,也是cd 到bin目录,发现在CMD下正常运行。那我就搞不懂在原来的那个项目为什么就不可以啊。知道的高手请帮个忙说说。

---------------  android培训、java培训、期待与您交流!---------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值