for(int n=100;n<=500;n++){
boolean flag=true;
for(int i=2;i<n;i++){
if(n%i==0){
flag=false;
break;
}
}
if(flag==true){
rf.seek(rf.length());
rf.writeInt(n);
}
}
}
}
我的疑问:
1.读出第五个素数不是把文件指针定位到5吗?可我读出来时却不是素数
2.100到500的素数如何追加进去?
3.请用通俗易懂的词语,不要用专业术语,我还是个刚学Java的学生
输出第5个素数,要先从文件中读取到第5个素数,然后输出,所以首先要先把2-100的素数输入到文件,下面使用的是writeInt()方法写入一个Int和readInt()方法读入一个int,所以素数文本文件不能直接打开直接看出有哪些素数,必须使用代码来看,修改如下:
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//写入2-100的素数
RandomAccessFile rf =new RandomAccessFile("f:\\Primenumber.txt","rw");
for(int n=2;n<=100;n++){
boolean flag=true;
for(int i=2;i<n;i++){
if(n%i==0){
flag=false;
break;
}
}
if(flag==true){
rf.writeInt(n);
}
}
rf.close();
//执行题目内容
rf =new RandomAccessFile("f:\\Primenumber.txt","rw");
int j =0;
int result ;
try {
while(true) {
result = rf.readInt();
j++;
if(j==5) { //打印第5个素数
System.out.println(result);
}
}
}catch(EOFException e) { //发生这个异常,正常情况是读取到文件结尾了,所以可以在这时追加100-500的素数
//追加100-500的素数
for(int n=100;n<=500;n++){
boolean flag=true;
for(int i=2;i<n;i++){
if(n%i==0){
flag=false;
break;
}
}
if(flag==true){
rf.writeInt(n);
}
}
}
rf.close();
}