将2到100中的素数,放入Primenumber.txt文件中,从中读出第5个素数,显示到屏幕上,并将100到500的素数追加到Primenumber.txt中
import java.io.*;
public class Primenumber {
public static void main(String[] args) throws IOException{
RandomAccessFile raf=new RandomAccessFile("Primenumber.txt","rw");
int i,n;
String s=" ";
byte b[]=s.getBytes();
String str=new String(b);
for(n=2;n<=100;n++) {
for(i=2;i<=n;i++) {
if(n%i==0) {
break;
}
}
if(i==n) {
//raf.write(String.valueOf(n).getBytes());
raf.writeInt(n);
//raf.writeBytes(str);
raf.write(b);
}
}
raf.seek(20);
System.out.println("第五个素数:"+raf.readInt());
raf.seek(raf.length());
for(n=100;n<=500;n++) {
for(i=2;i<=n;i++) {
if(n%i==0) {
break;
}
}
if(i==n) {
//raf.write(String.valueOf(n).getBytes());
raf.writeInt(n);
//raf.writeBytes(str);
raf.write(b);
}
}
}
}
虽然能正常显示第五个素数
但是文件内容里面是乱码
或者是另一种情况
import java.io.*;
public class Primenumber {
public static void main(String[] args) throws IOException{
RandomAccessFile raf=new RandomAccessFile("Primenumber.txt","rw");
int i,n;
String s=" ";
byte b[]=s.getBytes();
String str=new String(b);
for(n=2;n<=100;n++) {
for(i=2;i<=n;i++) {
if(n%i==0) {
break;
}
}
if(i==n) {
raf.write(String.valueOf(n).getBytes());
//raf.writeInt(n);
raf.writeBytes(str);
//raf.write(b);
}
}
raf.seek(20);
System.out.println("第五个素数:"+raf.readInt());
raf.seek(raf.length());
for(n=100;n<=500;n++) {
for(i=2;i<=n;i++) {
if(n%i==0) {
break;
}
}
if(i==n) {
raf.write(String.valueOf(n).getBytes());
//raf.writeInt(n);
raf.writeBytes(str);
//raf.write(b);
}
}
}
}
这种情况下,虽然文件内容是正常的
但是显示出错
所以有没有什么办法,可以同时保证输出正常,同时显示到控制台的内容也是相同的写法,求指教。