[英]Read from file in eclipse
我正在尝试从文本文件中读取数据到我的java程序。 但是,无论我把文件放在哪里,eclipse都会连续给我一个Source not found错误。
我在项目目录中创建了一个额外的sources文件夹,有问题的文件在它和项目的bin文件中,它仍然无法找到它。
我甚至把它的副本放在我的桌面上,并在它要求我浏览源查找路径时尝试指向eclipse。
无论我做什么都找不到文件。
这是我的代码,如果它是相关的:
System.out.println(System.getProperty("user.dir"));
File file = new File("file.txt");
Scanner scanner = new Scanner(file);
另外,它说用户目录是项目目录,也有副本。
我不知道该怎么做。
谢谢,亚历克斯
在尝试下面的建议并再次刷新之后,我受到了许多错误的欢迎。
FileNotFoundException(Throwable).<init>(String) line: 195
FileNotFoundException(Exception).<init>(String) line: not available
FileNotFoundException(IOException).<init>(String) line: not available
FileNotFoundException.<init>(String) line: not available
URLClassPath$JarLoader.getJarFile(URL) line: not available
URLClassPath$JarLoader.access$600(URLClassPath$JarLoader, URL) line: not available
URLClassPath$JarLoader$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
URLClassPath$JarLoader.ensureOpen() line: not available
URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: not available
URLClassPath$3.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
URLClassPath.getLoader(URL) line: not available
URLClassPath.getLoader(int) line: not available
URLClassPath.access$000(URLClassPath, int) line: not available
URLClassPath$2.next() line: not available
URLClassPath$2.hasMoreElements() line: not available
ClassLoader$2.hasMoreElements() line: not available
CompoundEnumeration<E>.next() line: not available
CompoundEnumeration<E>.hasMoreElements() line: not available
ServiceLoader$LazyIterator.hasNext() line: not available
ServiceLoader$1.hasNext() line: not available
LocaleServiceProviderPool$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
LocaleServiceProviderPool.<init>(Class<LocaleServiceProvider>) line: not available
LocaleServiceProviderPool.getPool(Class<LocaleServiceProvider>) line: not available
NumberFormat.getInstance(Locale, int) line: not available
NumberFormat.getNumberInstance(Locale) line: not available
Scanner.useLocale(Locale) line: not available
Scanner.<init>(Readable, Pattern) line: not available
Scanner.<init>(ReadableByteChannel) line: not available
Scanner.<init>(File) line: not available
使用的代码:
System.out.println(System.getProperty("user.dir"));
File file = new File(System.getProperty("user.dir") + "/file.txt");
Scanner scanner = new Scanner(file);
您是否在复制文件后尝试刷新(右键单击 - >刷新)项目文件夹? 这将使您的文件系统与Eclipse的内部文件系统SYNC。
运行Eclipse项目时,CWD(当前工作目录)是项目的根目录。 不是bin的目录。 不是src的目录,而是根目录。
此外,如果您使用的是Linux,请记住其文件系统通常区分大小写。
您是否尝试过使用绝对路径:
File file = new File(System.getProperty("user.dir") + "/file.txt");
您正在搜索/读取执行目录中的文件“fiel.txt”(我认为该类存储在哪里)。
如果你想读取给定目录中的文件,你必须这样说:
File file = new File(System.getProperty("user.dir")+"/"+"file.txt");
您也可以为目录提供相对路径,例如“./images/photo.gif”,例如子目录。
请注意,分隔符还有一个属性(在我的示例中硬编码为“/”)
尊重纪尧姆
我正在使用eclipse,因为“找不到文件异常”而无法读取文件。 我为解决这个问题所做的是将文件移动到项目的根目录。 希望这可以帮助。
您的代码没有任何问题,当我在user.dir目录中有file.txt时,以下工作正常。
import java.io.File;
import java.util.Scanner;
public class testme {
public static void main(String[] args) {
System.out.println(System.getProperty("user.dir"));
File file = new File("file.txt");
try {
Scanner scanner = new Scanner(file);
} catch (Exception e) {
System.out.println(e);
}
}
}
不要将Eclipse与文件所在的位置信任。 使用Windows资源管理器或同等文件转到实际文件系统并检查。
根据您的编辑,我认为我们还需要查看您的import语句。
有时,即使文件位于正确的目录中,仍然存在“找不到文件”异常。 您可以做的一件事是将文本文件放在eclipse中,您的类位于左侧。 它会询问您是否要复制,单击是。 有时它有帮助。
您只需要获取文件的绝对路径,因为您要查找的文件不存在于eclipse的运行时工作空间中,您可以使用 - getProperty()或getLocationURI()方法来获取文件的绝对路径
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.