| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2071 人关注过本帖
标题:java.io.EOFException
只看楼主 加入收藏
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
 问题点数:0 回复次数:8 
java.io.EOFException

服务端:
public class t10_5_s extends JFrame {
private ServerSocket server;
private Socket sock;
private DataInputStream dis;
private DataOutputStream dos;
private FileInputStream fis;
private PrintWriter pw;

public t10_5_s()
{

try {
server=new ServerSocket(8888);
sock=server.accept() ;
dos=new DataOutputStream (sock.getOutputStream() );
dos.writeUTF( "ok!");
dis=new DataInputStream (sock.getInputStream() );
pw=new PrintWriter (new FileWriter("d1.txt"));
String str=null;
while(true){

str=dis.readUTF();
System.out.println(str);
pw.print(str);

}
} catch (IOException e1) {
e1.printStackTrace();
}finally{
pw.close();
try {
sock.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
public static void main(String[] args) {
new t10_5_s();
}
}
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 t10_5_s.<init>(t10_5_s.java:44)
at t10_5_s.main(t10_5_s.java:65)

客户端:
public class t10_5_c extends JFrame{
private Socket sock;
private DataInputStream dis;
private DataOutputStream dos;
private FileOutputStream fos;
private FileInputStream fis;
public t10_5_c()
{

try {
sock=new Socket("127.0.0.1",8888);
dis=new DataInputStream (sock.getInputStream() );
System.out.println(dis.readUTF());
fis=new FileInputStream("data.txt");
dos=new DataOutputStream(sock.getOutputStream());

int sum=fis.available();
int i=0;
while(i<sum){
if((sum-i) >100){
byte s[]=new byte[100];
fis.read(s,0,100);
String str=new String(s);
System.out.println(str);
dos.writeUTF( str);
}


else
{
byte s1[]=new byte[sum-i];
fis.read(s1,0,(sum-i));
String str=new String(s1);
System.out.println(str);
dos.writeUTF( str);

}
i+=100;

}



} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{try {
sock.close();
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}}

}

public static void main(String[] args) {
new t10_5_c();
}
}
红色部分是错误!想了好久没搞不懂!

搜索更多相关主题的帖子: java EOFException 
2007-06-25 22:46
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
当然会出异常了

一个文件你一直读,读到最后,就抛出了这个异常

EOF就是End Of File的意义,表示已经到文件的末尾了

可惜不是你,陪我到最后
2007-06-26 09:16
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 
应该是服务端那里出错的吧!那样具体应该怎样解决!急!!!拜托了
2007-06-26 09:44
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 
干吗人影也不见多个啊!
2007-06-26 21:31
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 
while(true){

str=dis.readUTF();
System.out.println(str);
pw.print(str);}
死循环了?应该判断是否为文件的结尾?

在不断的拼搏与进取中,定能创造一片天地!
2007-06-26 23:50
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 

谢谢你的回答!原因我也知道了.我不懂的是应该用什么方法或条件去判断...贴我都发了几天了....还是没人有办法吗?

2007-06-27 00:06
myfor
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:357
专家分:6
注 册:2006-3-13
收藏
得分:0 
while((str=dis.readUTF()!)=null){


System.out.println(str);
pw.print(str);

}
看看行不

广告位招租
2007-06-27 00:14
trhuang
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2007-4-1
收藏
得分:0 

遗憾!不行!

2007-06-27 00:20
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
你应该去捕获那个异常,并处理它

另外,因为你发的是文本,你可以用BufferedReader里面的readLine方法啊

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(xx.txt)));
String temp=null;
while((temp=br.readLine())!=null){

//把读到的temp发送过去
}

可惜不是你,陪我到最后
2007-06-27 09:01
快速回复:java.io.EOFException
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012410 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved