我在將存儲的數據從我的數組寫入文本文件時遇到了一些問題。 我已經設法獲得文件中的某種數據,但是我有問題了解它是什麼(是否正確?)。事情是,該文件大約是4Mb,當我嘗試打開它時 - 它不打開,因爲計算機只是試圖加載它。於是我在終端中使用「cat gedit filename」命令(是的,我使用linux),並且我看到很多正方形都打印出來,每個方塊都有數字,幾乎看起來像是位,因爲我看到很多零和一些。但我也很清楚,我的數組包含很多零和很難看到它是否甚至是數組的內容。 請參閱下面的代碼。Java 2-D陣列I/O
但是,關於該文件中的其他代碼正在解決Project Euler中的問題,但我將使用其他數據作爲自己的其他數據,所以我想將它們全部存儲在數組中,然後將其保存到單獨的文件。解決這個問題很好,但它運行良好,但 - 我的「寫入文件」(請參閱方法「寫入」)不起作用 - 或者它確實有效,但我無法理解文件的內容。
該文件應該包含很多零和1,一些更高(數組中的最高值是71),並且該數組是一個大小爲2000x2000的方陣。 我試過打印出來的數組的內容分別調試,看看它是否工作到目前爲止 - 它的確如此。
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Euler27_MATLAB {
public static boolean isPrime(int n){
if(n<2 || (n>2 && n%2==0)){
return false;
}else if(n==2){
return true;
}else{
for(int i=3; i<=Math.sqrt(n); i=i+2){
if(n%i==0){
return false;
}
}
return true;
}
}
//THIS IS WHERE I NEED HELP
public static void write (String filename, int[][]x) throws IOException{
BufferedWriter outputWriter = null;
outputWriter = new BufferedWriter(new FileWriter(filename));
for (int i = 0; i < x.length; i++) {
for(int j=0; j<x.length; j++){ //array is square
outputWriter.write((x[i][j]));
}
outputWriter.newLine();
}
outputWriter.flush();
//outputWriter.close();
}
public static void main(String[] args){
int tmp=0; int A = 0; int B = 0; int limit = 1000;
int nbr = 0;
int [][]array = new int[limit*2+1][limit*2+1];
long start = System.currentTimeMillis();
for(int a=-limit; a<=limit; a++){ //2 if only odd nbrs
for(int b=-limit; b<=limit; b++){
while(isPrime(nbr*nbr+a*nbr+b)){ //n^2+an+b
nbr++;
}
array[a+limit][b+limit]=nbr;
if(nbr>tmp){ //store the values for later out-print
tmp = nbr; A=a; B=b;
}
nbr=0;
}
}
long time = System.currentTimeMillis() - start;
System.out.println("The product a*b is: " + A*B + "\nwith a=" + A +
" and b=" + B + " with limit " + limit +".");
System.out.println("Formula generated " + tmp + " primes.");
System.out.println("Time: " + time + " ms.");
//FOR THE ARRAY ----------------------------------------------
try{
write("/home/robin/workspace/ProjectEuler/src/pe27",array);
}catch(E`enter code here`xception e){
System.out.println("Failure");
}
}
}
我嘗試了代碼,我發現在谷歌,並不能讓那些工作。
吉爾
不相關,但'貓gedit文件名'沒有任何意義。你的意思是'貓文件名'。 – m0skit0