Topic: 一段简单的代码,实在搞不懂为什么会出错,请教请教

  Print this page

1.一段简单的代码,实在搞不懂为什么会出错,请教请教 Copy to clipboard
Posted by: tiexuexue
Posted on: 2004-07-03 18:14

代码如下:

import java.io.*;
public class Test {
public Test() {
}
public static void main(String[] args) {
try {
DataInputStream d = new DataInputStream(new FileInputStream("f:/a.txt.bak"));
System.out.println(d.readUTF());
d.close();
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}
}

报错如下:
java.io.EOFException
at java.io.DataInputStream.readFully(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at Test.main(Test.javaShy

请教大家怎么解决阿?

2.Re:一段简单的代码,实在搞不懂为什么会出错,请教请教 [Re: tiexuexue] Copy to clipboard
Posted by: 心处理器
Posted on: 2004-07-03 21:46

文本文件用字符流就可以了,用字节流干吗?

3.Re:一段简单的代码,实在搞不懂为什么会出错,请教请教 [Re: tiexuexue] Copy to clipboard
Posted by: zerol
Posted on: 2004-07-04 10:33

你要读取的文件当中如果没有数据, 或者开始的数据不是UTF编码的,
readUTF() 就会抛出EOFException.

先写点东西进去吧:)

4.Re:一段简单的代码,实在搞不懂为什么会出错,请教请教 [Re: tiexuexue] Copy to clipboard
Posted by: ant21
Posted on: 2004-07-04 12:18

"f:\\a.txt.bak"

5.Re:一段简单的代码,实在搞不懂为什么会出错,请教请教 [Re: zerol] Copy to clipboard
Posted by: tiexuexue
Posted on: 2004-07-04 17:44

zerol wrote:
你要读取的文件当中如果没有数据, 或者开始的数据不是UTF编码的,
readUTF() 就会抛出EOFException.

先写点东西进去吧:)


嗯,是的,我的文件开始数据不是用utf8编码,试了一下发现文件头需要两个字节表示后面的文件长度,正确的才不会报错,谢谢了


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923