#java
#java
Вопрос:
Я действительно не понимаю, в чем проблема, но мой сканер просто не может видеть файл, который я передаю. Я пытался переместить файл в src, все еще не работает. Вот код:
public static void main(String[] args) {
File file = new File("src/1.txt");
Scanner sc = new Scanner(file);
int n = sc.nextInt();
int [][] graph = new int [n][n];
for (int x =0; x<n; x )
for (int y=0; y<n;y )
graph[x][y] = sc.nextInt();
}
Файл хранится в C:UsersevlucIdeaProjectska1srccomcompany
Комментарии:
1. С какой ошибкой / проблемой вы столкнулись при запуске этого
2. вы утверждаете, что файл хранится в src com company. Так что попробуйте srccomcompany1.txt
3. в каком каталоге или классе вы находитесь?
4. Я предполагаю, что это проблема с путем, и файл находится не в правильной папке. Попробуйте использовать абсолютный путь, а затем сузьте проблему с относительными путями.
5. Вы должны попробовать
"Users/evluc/IdeaProjects/ka1/src/com/company/1.txt"
Ответ №1:
попробуйте приведенный ниже код.
File file = new File("C:UsersevlucIdeaProjectska1srccomcompanysrc1.txt");
try {
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
int n = sc.nextInt();
int [][] graph = new int [n][n];
for (int x =0; x<n; x )
for (int y=0; y<n;y )
graph[x][y] = sc.nextInt();
}
sc.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
Комментарии:
1. смешивать обратную и переднюю косые черты не рекомендуется, и в этом случае, вероятно, даже не сработает
Ответ №2:
Вы можете попробовать file.getCanonicalPath()
или file.getAbsolutePath()
определить, какой путь к файлу вы пытаетесь прочитать, и, следовательно, можете выяснить, что не так с вашим относительным путем. Я предполагаю, что это просто проблема с относительным путем и не имеет ничего общего с фактической процедурой, которую вы пытаетесь выполнить для доступа к файлу. Если вы знаете, на что вы указываете с помощью File
объекта, вы также будете знать, как вам нужно изменить свой относительный путь. Это всегда первое, что нужно проверить при работе с относительными путями.
Комментарии:
1. да. если эта программа присутствует в том же каталоге. здесь можно использовать только имя
2. я использовал getAbsolutePath(), и он показал точный путь, который я передаю в File файл = новый файл («src/1.txt»); Однако сканер сообщает: необработанное исключение: java.io.FileNotFoundException
3. @mak У меня нет времени проверять это самостоятельно с помощью кода, но я беру это journaldev.com/848/java-file-path-absolute-canonical в качестве примера я сомневаюсь, что вы не получите абсолютный путь с помощью обоих описанных выше методов. Как вы можете видеть, относительный путь преобразован в абсолютный путь. Возможно, я чего-то не понимаю, но IDK, что это должно быть;)
Ответ №3:
Входные данные, которые вы предоставили, src/1.txt
он пытается просмотреть файл по местоположению: C:UsersevlucIdeaProjectssrc1.txt
.
Либо укажите абсолютный путь к файлу, либо исправьте свой путь.