JAVA中如何通过EOF判断1个文件末尾

JAVA中如何通过EOF判断1个文件末尾,我不要用file.read()返回-1的方法,因为这个方法我用过了,在我这个程序里不成立,必须要使用类似C++里的EOF方法判断... JAVA中如何通过EOF判断1个文件末尾,我不要用file.read()返回-1的方法,因为这个方法我用过了,在我这个程序里不成立,必须要使用类似C++里的EOF方法判断文件末尾。
所以想知道的
1是JAVA里文件末尾也就是EOF的确定的标识符是什么。
2是如何将EOF显示出来,就是用system.out.println()方法显示在控制台上。
3是EOF使用的编码是哪种。
4。如果实在拿不到EOF,告诉我为什么
以上
解决问题了我追500分,乱答的滚蛋,再说次我不要read()返回-1的这个方法。
用BufferedReader的那样不好,如果我不关闭流,他是会阻塞在最后有内容的1行等待而不是返回-1啊,不过我再试试看。
liu__huan感谢你,JAVA确实没有提供包括流的任何EOF,而且我试验过EOFException的方法了,现在的java是不容易抛出这个异常的,他们只会在读取流方法的时候返回-1,但是流如果不关闭,方法是阻塞在最后1个流的末尾等待流给出信息吧。我就是苦手在这里。
另外EOFException是意外读到末尾才抛出的,在一般的流是不会抛出这样的异常,JAVA编辑器上给出的只是IOException而已……说这个异常可以再看下API
展开
 我来答
北京欢迎你老大
2009-08-24 · TA获得超过1037个赞
知道小有建树答主
回答量:776
采纳率:0%
帮助的人:684万
展开全部
用BufferedReader,一行一行的读,什么时候返回null了就是读完了

class CopyFileTo extends Thread{
private String fromFile;
private String toFile;
private byte[] rbyte=new byte[2056];
private byte[] nbyte;
public CopyFileTo(String fromf,String tof){
fromFile=fromf;
toFile=tof;
}
public void run(){
try {
RandomAccessFile rfile=new RandomAccessFile(fromFile,"r");
RandomAccessFile wfile=new RandomAccessFile(toFile,"rw");
long filePointer=0;
long diff;
long length=rfile.length();
while(filePointer<length)
{
diff=length-filePointer;
if(diff>=2056){
rfile.readFully(rbyte);
wfile.write(rbyte);
}else{
nbyte=new byte[(int)diff];
rfile.readFully(nbyte);
wfile.write(nbyte);
}
filePointer=rfile.getFilePointer();
}
rfile.close();
wfile.close();
}catch(Exception e){
System.err.println(e);
}
}
}
liu__huan
推荐于2016-08-31 · TA获得超过1064个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:323万
展开全部
1.你的问题我不知道。
2.不知道你用的是IO流读取的么?
IO类里面应该是没有InputStreamReader.EOF 之类的标示
3.我有这样一个想法。不知道适合你的程序不。
借助他的异常机制
4.
InputStreamReader temp;
try{

temp.read()...
.....

//读到末尾时候 抛出Eofxception.... 异常
}catch(EOFEx.....){
//只抓到,不在后台输出堆栈信息
}finally{
//关闭 io 流
}
5.这样抓异常 的确很危险,出错了会不知道原因。但是打出堆栈信息
这个错误又是必须出的,后台会有很多信息....
6.不知道可不可行,个人意见仅供参考。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjphzxg
2009-08-26
知道答主
回答量:9
采纳率:0%
帮助的人:4.3万
展开全部
try{
读文件。。。。

}catch(EOFException e)
{
运行到这里,文件读完
}
finally{

关闭流
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友97ad656e5
2009-08-26 · 超过14用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:0
展开全部
我到是感觉 read() 的方法是最快最好的方法 特殊的地方你可以做特殊的处理

又想马儿跑的快,又想马儿不吃草 这种思想是最不应该出现的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友414a186
2009-08-26
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
你try catch 一个异常``是什么文件以到末尾的异常就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式