Я пытаюсь построить гистограмму, которая читает набор из примерно 200 сотен чисел, сохраненных в файле .txt, после того, как я отправляю его имя через сканер. После этого я хотел бы напечатать одну звездочку для каждого введенного значения.
Вот этот файл: https://gofile.io/?c=4kfTrW
Я обнаружил, что для чтения файлов в программе мне нужноиспользовать java.io. Теперь я посмотрел документацию, и мне сказали импортировать FileNotFoundException, что я на самом деле не понял, почему.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Class83 {
public static void main(String[] args) throws FileNotFoundException {
int[] data = new int[200];
Scanner sc = new Scanner(System.in);
System.out.println("Enter file's filepath: ");
/*reading filename*/
String fileName = sc.nextLine();
int index = 0;
/*Reading file*/
File file = new File(fileName);
Scanner inputFile = new Scanner(file);
try {
/*Going through each element*/
while (inputFile.hasNext()) {
if (inputFile.hasNextInt()) {
/*Storing numbers read from text into array*/
data[index] = inputFile.nextInt();
index++;
} else {
inputFile.next();
}
}
} finally {
/*Closing file*/
inputFile.close();
}
String[] Stars = {" 1-10 |", "11- 20 | ", "21- 30 | ", "31- 40 | ", "41- 50 | ",
"51- 60 | ", "61- 70 | ", "71- 80 | ", "81- 90 | ", "91-100 | "};
/*Going through array values*/
for (int i = 0; i < index; i++) {
int num = data[i];
if (num < 11) {
Stars[0] += "*";
} else if (num < 21) {
Stars[1] += "*";
} else if (num < 31) {
Stars[2] += "*";
} else if (num < 41) {
Stars[3] += "*";
} else if (num < 51) {
Stars[4] += "*";
} else if (num < 61) {
Stars[5] += "*";
} else if (num < 71) {
Stars[6] += "*";
} else if (num < 81) {
Stars[7] += "*";
} else if (num < 91) {
Stars[8] += "*";
} else {
Stars[9] += "*";
}
}
/*Finally printing the results*/
for (int i = 0; i < 10; i++) {
System.out.println(Stars[i]);
}
}
}
Ожидаемый результат должен быть примерно таким: https://imgur.com/a/mes6B4c, но этона самом деле выдает ошибку:
Exception in thread "main" java.io.FileNotFoundException: Random_Int.txt (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.util.Scanner.<init>(Scanner.java:611)
at Class83.main(Class83.java:27)
C:\Users\KevinUriel\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 32 seconds)
Да, я знаю, он говорит, что не нашел файл, но он находится в той же папке, поэтому вызывает головную боль. Я уже пробовал, используя имя его пути к файлу, и все еще не работал.
ОБНОВЛЕНИЕ:
В настоящее время он печатает упомянутую ошибку, когда я просто набираю ее имя, скажем,Random_Int.txt;когда я помещаю весь путь к файлу, он просто печатает следующее:
1-10 |
11- 20 |
21- 30 |
31- 40 |
41- 50 |
51- 60 |
61- 70 |
71- 80 |
81- 90 |
91-100 |
Он даже не печатает звезды: /