嗨有没有办法让FileInputStream在同一目录中读取hello.txt
而不指定路径?
package hello/
helloreader.java
hello.txt
我的错误讯息:Error: .\hello.txt (The system cannot find the file specified)
答案 0 :(得分:10)
您可以使用相对路径读取文件,如。
File file = new File("./hello.txt");
YourProject
- >仓
- > hello.txt的
- >的.classpath
- >的.project
这是作品
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class fileInputStream {
public static void main(String[] args) {
File file = new File("./hello.txt");
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
System.out.println("Total file size to read (in bytes) : "
+ fis.available());
int content;
while ((content = fis.read()) != -1) {
// convert to char and display it
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
答案 1 :(得分:9)
您可以使用YourClassName.class.getResourceAsStream("Filename.txt")
,但您的文本文件必须与YourClassName
文件位于同一目录/包中。
答案 2 :(得分:3)
当您打开“hello.txt”时,您将在该进程的当前working directory中打开一个文件。即从哪里运行程序,而不是你的jar或其他目录。
答案 3 :(得分:2)
使用路径hello.txt
打开文件时,文件hello.txt
应位于执行java
命令的同一目录中,即工作目录。在运行Java程序时,可以使用以下代码打印工作目录:
System.out.println(System.getProperty("user.dir"));
假设您执行了像java hello.helloreader
这样的代码,那么您应该使用以下路径来获取hello.txt
:
new FileInputStream("hello/hello.txt")
答案 4 :(得分:0)
您可以尝试使用System.getProperty(" dir")来显示当前目录,并且您将知道如何编写文件路径