java异常之疑惑?
importjava.io.*;publicclassDataStreamTest{/***@paramargs*/publicstaticvoidmain(String...
import java.io.*;
public class DataStreamTest {
/**
* @param args
*/
public static void main(String[] args){
// TODO Auto-generated method stub
try{
FileOutputStream fos = new FileOutputStream("Test.txt"); //创建文件输出流对象
BufferedOutputStream bos = new BufferedOutputStream(fos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF("中国UTF");
//dos.writeBytes("中国");
//dos.writeChars("中国");
dos.close();
FileInputStream fis = new FileInputStream("Test.txt");//创建文件输入流对象
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
System.out.println("readUTF() : "+dis.readUTF()); //打印readUTF()的内容
dis.readUTF();
/*byte[] buf = new byte[1024];
int len = dis.readByte();
System.out.println("readByte : "+new String(buf,0,len)); //打印readBytes()的内容*/
dis.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
//请问为什么我都捕获异常了还是这样的结果?
readUTF() : 中国UTF
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323)
at java.io.DataInputStream.readUTF(DataInputStream.java:572)
at java.io.DataInputStream.readUTF(DataInputStream.java:547)
at com.datastream.test.DataStreamTest.main(DataStreamTest.java:23)
我都catch异常了,为什么还打印出那些异常?谢谢 展开
public class DataStreamTest {
/**
* @param args
*/
public static void main(String[] args){
// TODO Auto-generated method stub
try{
FileOutputStream fos = new FileOutputStream("Test.txt"); //创建文件输出流对象
BufferedOutputStream bos = new BufferedOutputStream(fos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF("中国UTF");
//dos.writeBytes("中国");
//dos.writeChars("中国");
dos.close();
FileInputStream fis = new FileInputStream("Test.txt");//创建文件输入流对象
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
System.out.println("readUTF() : "+dis.readUTF()); //打印readUTF()的内容
dis.readUTF();
/*byte[] buf = new byte[1024];
int len = dis.readByte();
System.out.println("readByte : "+new String(buf,0,len)); //打印readBytes()的内容*/
dis.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
//请问为什么我都捕获异常了还是这样的结果?
readUTF() : 中国UTF
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323)
at java.io.DataInputStream.readUTF(DataInputStream.java:572)
at java.io.DataInputStream.readUTF(DataInputStream.java:547)
at com.datastream.test.DataStreamTest.main(DataStreamTest.java:23)
我都catch异常了,为什么还打印出那些异常?谢谢 展开
5个回答
展开全部
at com.datastream.test.DataStreamTest.main(DataStreamTest.java:23)
dis.readUTF(); 这行注释掉可以运行了 这句话产生异常,“e.printStackTrace(); ”就是因为捕获到异常,所以会打印异常信息;EOFException
最好把声明的流都给关闭
fos.close()
bos.close()
dis.readUTF(); 这行注释掉可以运行了 这句话产生异常,“e.printStackTrace(); ”就是因为捕获到异常,所以会打印异常信息;EOFException
最好把声明的流都给关闭
fos.close()
bos.close()
追问
把高层的流关闭 了,那些都自己被关闭了吧,谢谢了
追答
能运行,最好关掉。保证一点哦
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你虽然catch了异常,但是程序本身是错误的,我运行过了,把
dis.readUTF();
这一句删掉就行了
dis.readUTF();
这一句删掉就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-08-16
展开全部
什么啊?
追问
我都catch异常了,为什么还打印出那些异常?谢谢
追答
这我就不知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是e.printStackTrace();执行的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询