私は少しstackoverflowを検索しましたが、私はこの問題の答えを見つけることができないようです。プログラムが.txtファイルへの書き込みが遅れていますか?
私のCSクラスの私の現在の宿題は、5000個の乱数のファイルから読み込み、データを配列に入れたり、何回何回何回何回見るか、何が最長の増加シーケンスです。私はそれだけでうまくいったすべてを持っている。
これに加えて、ファイルを上書きして5000の新しい乱数を作成して、自分のコードが複数の異なるテストケースで動作することを確認する方法を追加しています。
ほとんどの場合、このメソッドは機能しますが、呼び出した後はプログラムの残りの部分が終了するまで「アクティブ化」しないように見えます。私がそれを実行して数値を変更するように指示した場合、プログラムで変更された値を実際に見るためには再度実行する必要があります。これを修正する方法はありますか?
は、データhere-制御ケースを変更しようとしていない:データを変更間の遅延を示す
電流出力。
elkshadow5$ ./CompileAndRun.sh
Create a new set of numbers? Y for yes. n
What number are you looking for? 66
66 was found 1 times.
The longest sequence is [606, 3170, 4469, 4801, 5400, 8014]
It is 6 numbers long.
数字はここで変更する必要がありますが、変更する必要はありません。
elkshadow5$ ./CompileAndRun.sh
Create a new set of numbers? Y for yes. y
What number are you looking for? 66
66 was found 1 times.
The longest sequence is [606, 3170, 4469, 4801, 5400, 8014]
It is 6 numbers long.
データは、それが変わったのことを示して今、データの後に実行が変更されている必要があります。
elkshadow5$ ./CompileAndRun.sh
Create a new set of numbers? Y for yes. n
What number are you looking for? 1
1 was found 3 times.
The longest sequence is [1155, 1501, 4121, 5383, 6000]
It is 5 numbers long.
マイコード:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class jeftsdHW2 {
static Scanner input = new Scanner(System.in);
public static void main(String args[]) throws Exception {
jeftsdHW2 random = new jeftsdHW2();
int[] data;
data = new int[5000];
random.readDataFromFile(data);
random.overwriteRandNums();
}
public int countingOccurrences(int find, int[] array) {
int count = 0;
for (int i : array) {
if (i == find) {
count++;
}
}
return count;
}
public int[] longestSequence(int[] array) {
int[] sequence;
return sequence;
}
public void overwriteRandNums() throws Exception {
System.out.print("Create a new set of numbers? Y for yes.\t");
String answer = input.next();
char yesOrNo = answer.charAt(0);
if (yesOrNo == 'Y' || yesOrNo == 'y') {
writeDataToFile();
}
}
public void readDataFromFile(int[] data) throws Exception {
try {
java.io.File infile = new java.io.File("5000RandomNumbers.txt");
Scanner readFile = new Scanner(infile);
for (int i = 0; i < data.length; i++) {
data[i] = readFile.nextInt();
}
readFile.close();
} catch (FileNotFoundException e) {
System.out.println("Please make sure the file \"5000RandomNumbers.txt\" is in the correct directory before trying to run this.");
System.out.println("Thank you.");
System.exit(1);
}
}
public void writeDataToFile() throws Exception {
int j;
StringBuilder theNumbers = new StringBuilder();
try {
PrintWriter writer = new PrintWriter("5000RandomNumbers.txt", "UTF-8");
for (int i = 0; i < 5000; i++) {
if (i > 1 && i % 10 == 0) {
theNumbers.append("\n");
}
j = (int) (9999 * Math.random());
if (j < 1000) {
theNumbers.append(j + "\t\t");
} else {
theNumbers.append(j + "\t");
}
}
writer.print(theNumbers);
writer.flush();
writer.close();
} catch (IOException e) {
System.out.println("error");
}
}
}
撮影にどれくらいの時間がかかりません。 –
は、あなたの最も_シーケンスです_コードは毎回ファイルから読み取りますか?コードのその部分を共有することはできますか? –
どのくらいの時間がかかるか表示しようとしましたが、プログラムの実行が終了するまでファイルに書き込まれません。 longestSequenceが表示されている番号が次回の実行時まで変更されていないため、「検出」しています – elkshadow5