Когда я пытаюсь прочитать файл с Java с помощью Eclipse, он всегда говорит, что не может его найти? - PullRequest
0 голосов
/ 23 октября 2009

Я создал эту простую программу в Eclipse:

import java.util.*;
import java.io.*;

public class prob1 {
    public static void main(String[] args)
    {

        try
        {
            FileReader in = new FileReader("practice.in");
            Scanner scanner = new Scanner(in);

            while(scanner.hasNext())
            {
                int number = scanner.nextInt();
                if(number==0)break;
                int sum = 0;

                for (int i=0; i<number; i++)
                {
                    int x = scanner.nextInt();
                    sum += x;                
                }
                System.out.println("Sum = "+sum);
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }


    }
}

У меня также есть файл "Practice.in" в той же папке, что и этот файл Practice.java (папка src в Eclipse. "

Однако, когда я пытаюсь запустить его, он никогда не может его найти. Что затмение делает с путями, которые я могу просто сделать FileReader ("Practice.in"), когда Practice.in находится в том же каталоге, что и файл Java? Это как-то связано с моим рабочим каталогом?

Ответы [ 3 ]

3 голосов
/ 23 октября 2009

Папкой по умолчанию в eclipse является корневой каталог проекта, а не папка src. Вам необходимо переместить файл или указать относительный путь к «src / practice.in»

2 голосов
/ 23 октября 2009

Если practice.in уровней на том же уровне каталога, что и ваш Java-файл, то вы также можете использовать [Class.getResourceAsStream()] (http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)):

InputStream steam = prob1.class.getResourceAsStream("practice.in");
Scanner scanner = new Scanner(stream);
...

Это будет работать независимо от того, где вы вызвали Java-файл.

0 голосов
/ 23 октября 2009

Java будет обращаться к файлу относительно каталога, из которого выполняется команда java, который является корневым каталогом вашего проекта. Поэтому вам нужно будет указать полный путь к этому файлу, начиная с корня проекта.

Кроме того, если вы используете библиотеку Spring, вы можете использовать контекст приложения, чтобы найти файл с заданным именем в любом месте пути к классам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...