그래서, 조금 주위에 stackoverflow 검색했지만이 문제에 대한 답변을 찾을 수 없습니다.프로그램의 작성이 .txt 파일로 지연 되었습니까?
나의 CS 수업을위한 나의 숙제는 5000 개의 난수를 가진 파일을 읽고 배열에 넣는 것, 숫자가 몇 번 나왔는지 확인하는 것, 그리고 가장 길게 늘어나는 시퀀스를 찾는 것 입니다. 나는 그 모든 것을 잘 처리했습니다.
이 외에도 필자는 파일을 덮어 쓰고 5000 개의 새로운 난수를 작성하여 여러 코드 테스트 케이스에서 코드가 작동하는지 확인하는 방법을 추가하고 있습니다.
이 메서드는 대부분 작동하지만, 호출 한 후에는 나머지 프로그램이 완료 될 때까지 "활성화"하지 않는 것 같습니다. 실행하여 숫자를 변경하도록 지시하면 프로그램에서 변경된 값을 실제로보기 위해 다시 실행해야합니다. 이 문제를 해결할 수있는 방법이 있습니까? 데이터를 변경하는 사이의 지연을 도시
전류 출력 :
데이터 여기 - 제어 소문자를 변경하려고 없음.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