我在笔记本上写了一个示例文本。然后我通过将其命名为TEST将文件保存在桌面上。当我尝试读取其内容时,不幸的是,在以下代码中,我收到消息:“无法打开文件”。 我该怎么做才能从测试文件中读取文本?
这是我的代码:
public static void main(String[] args) {
int i;
FileInputStream fin;
//Checks whether the file name was specified
if(args.length !=1) {
System.out.println("Usage: ShowFile TEST.TXT");
return;
}
//Try open
try {
fin = new FileInputStream(args[0]);
} catch(FileNotFoundException exc) {
System.out.println("The file can not be opened!");
return;
}
//At this stage, the file is open and ready to read, the following code reads the characters to reach the end of the file
try {
do {
i = fin.read();
if(i != -1) System.out.println((char)i);
} while(i != -1);
} catch (IOException exc) {
System.out.println("Error reading the file");
}
//Close file
try {
fin.close();
} catch(IOException exc) {
System.out.println("Error close file!");
}
}
我在命令行上写道: TEST.TXT
答案 0 :(得分:2)
当然,您会得到一个错误。 因为默认情况下FileInputStream()会检查当前目录中的文件,即 在您的Java源文件所在的目录中。并且已经将TEST.TXT保存在桌面上。
因此,打开您位于Desktop文件夹中的文件。只需提供文件到FileInputStream的绝对路径即可。
例如,如果文件存储在C:\ Users \ user \ Desktop \ TEST.txt
然后
file = new FileInputStream(“ C:\ Users \ user \ Desktop \ TEST.txt”);
谢谢,祝您编码愉快!!
答案 1 :(得分:1)
尝试一下
BufferedReader br = new BufferedReader(new FileReader(new File("TEST")));
Sytem.out.println(br.readLine());
答案 2 :(得分:1)
那是因为没有给出完整的路径,并且工作目录被当作起始目录。该路径在System.getProperty("home.dir")
中。
Path path = Paths.get("TEST.txt");
System.out.println("Full path: " + path.toAbsolutePath());
您可以在台式机上使用
System.getProperty("home.user") + "/Desktop/" + args[0]