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 展开
所以想知道的
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 展开
展开全部
用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);
}
}
}
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);
}
}
}
展开全部
1.你的问题我不知道。
2.不知道你用的是IO流读取的么?
IO类里面应该是没有InputStreamReader.EOF 之类的标示
3.我有这样一个想法。不知道适合你的程序不。
借助他的异常机制
4.
InputStreamReader temp;
try{
temp.read()...
.....
//读到末尾时候 抛出Eofxception.... 异常
}catch(EOFEx.....){
//只抓到,不在后台输出堆栈信息
}finally{
//关闭 io 流
}
5.这样抓异常 的确很危险,出错了会不知道原因。但是打出堆栈信息
这个错误又是必须出的,后台会有很多信息....
6.不知道可不可行,个人意见仅供参考。
2.不知道你用的是IO流读取的么?
IO类里面应该是没有InputStreamReader.EOF 之类的标示
3.我有这样一个想法。不知道适合你的程序不。
借助他的异常机制
4.
InputStreamReader temp;
try{
temp.read()...
.....
//读到末尾时候 抛出Eofxception.... 异常
}catch(EOFEx.....){
//只抓到,不在后台输出堆栈信息
}finally{
//关闭 io 流
}
5.这样抓异常 的确很危险,出错了会不知道原因。但是打出堆栈信息
这个错误又是必须出的,后台会有很多信息....
6.不知道可不可行,个人意见仅供参考。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try{
读文件。。。。
}catch(EOFException e)
{
运行到这里,文件读完
}
finally{
关闭流
}
读文件。。。。
}catch(EOFException e)
{
运行到这里,文件读完
}
finally{
关闭流
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我到是感觉 read() 的方法是最快最好的方法 特殊的地方你可以做特殊的处理
又想马儿跑的快,又想马儿不吃草 这种思想是最不应该出现的
又想马儿跑的快,又想马儿不吃草 这种思想是最不应该出现的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你try catch 一个异常``是什么文件以到末尾的异常就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询