为什么这两个同样的Java程序输出结果不一样
packagecn.mldn.test;importjava.io.File;importjava.io.FileNotFoundException;importjava...
package cn.mldn.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Reader {
public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
File file = new File("f:"+File.separator+"demo"+
File.separator+"test.txt");
if(!file.isFile()){
System.out.println("文件不存在");
}
FileReader rea= new FileReader(file);
byte date[] =new byte[1024];
int foot=0;
int temp=0;
while((temp=rea.read())!=-1){
date[foot++]=(byte) temp;
}
System.out.println(new String(date,0,foot));
}
}
package cn.mldn.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Reader {
public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
File file = new File("f:"+File.separator+"demo"+
File.separator+"test.txt");
if(!file.isFile()){
System.out.println("文件不存在");
}
FileReader rea= new FileReader(file);
byte date[] =new byte[1024];
int foot=0;
while((rea.read())!=-1){
date[foot++]=(byte) rea.read();
}
System.out.println(new String(date,0,foot));
}
} 展开
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Reader {
public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
File file = new File("f:"+File.separator+"demo"+
File.separator+"test.txt");
if(!file.isFile()){
System.out.println("文件不存在");
}
FileReader rea= new FileReader(file);
byte date[] =new byte[1024];
int foot=0;
int temp=0;
while((temp=rea.read())!=-1){
date[foot++]=(byte) temp;
}
System.out.println(new String(date,0,foot));
}
}
package cn.mldn.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Reader {
public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
File file = new File("f:"+File.separator+"demo"+
File.separator+"test.txt");
if(!file.isFile()){
System.out.println("文件不存在");
}
FileReader rea= new FileReader(file);
byte date[] =new byte[1024];
int foot=0;
while((rea.read())!=-1){
date[foot++]=(byte) rea.read();
}
System.out.println(new String(date,0,foot));
}
} 展开
展开全部
比对了你的代码,不同的地方见下面代码
第一个
int temp=0;
while((temp=rea.read())!=-1){
date[foot++]=(byte) temp;
}
第二个
while((rea.read())!=-1){
date[foot++]=(byte) rea.read();
}
第一个类里只调用了一次rea.read(),用于判断和赋值,而第二个类里调用了两次rea.read(),一个用于判断,一个用于赋值,如果你文件内容小于byte[1024]的长度,那么第二次read将返回空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原因是这里:
while((rea.read())!=-1){
date[foot++]=(byte) rea.read();
}
楼上说得是没错,但是原因就属于瞎扯淡了,rea.read()这个方法,第一个中,你是每一个都读到了,而第二个中,你是每次取第二次读的值赋值的,相当于100个数每次读偶数;说白了,rea.read()这个方法你每调用一次,他就读取一次
while((rea.read())!=-1){
date[foot++]=(byte) rea.read();
}
楼上说得是没错,但是原因就属于瞎扯淡了,rea.read()这个方法,第一个中,你是每一个都读到了,而第二个中,你是每次取第二次读的值赋值的,相当于100个数每次读偶数;说白了,rea.read()这个方法你每调用一次,他就读取一次
追问
你的意思是在while判断中读了一次,在while语句中又读了一次
追答
就是这个意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结果输出的是什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询