黑马程序员__java_IO流问题
2011-09-25 15:02
309 查看
---------------
android培训、java培训、期待与您交流!---------------
这是个偶的简单的练习,发现了一些问题:
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培训、期待与您交流!---------------
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培训、期待与您交流!---------------
相关文章推荐
- 黑马程序员——Java之IO流
- 黑马程序员--java中的io流
- 黑马程序员 Java基础之IO流
- 黑马程序员——Java基础——IO流笔记(InputStreamReader和OutputStreamWriter使用示例)
- 黑马程序员之——Java基础 IO流——第四部分
- 黑马程序员——JAVA基础------IO流(四)----字节字符转换流和缓冲流
- 黑马程序员-java中io流小结
- 黑马程序员——java基础(IO流)
- 黑马程序员 java学习笔记——IO流2
- 黑马程序员——Java基础——IO流(上)
- 【黑马程序员】Java基础05:多线程与其安全问题
- 黑马程序员——Java基础---IO流<实例>
- 黑马程序员——Java基础-IO流
- 黑马程序员——Java基础——IO流的File类
- 黑马程序员_日记18_Java多线程(八)--生产者消费者问题JDK1.5特性
- 黑马程序员,Java基础知识八:IO流
- 黑马程序员_Java基础_IO流_打印流,合并流,分割文件,对象持久化,管道流...其他常用流
- 黑马程序员——java基础IO流、访问src资源配置文件
- 黑马程序员——JAVA基础之IO流FileReader,FileWriter
- 黑马程序员-java学习基础加强之IO流