请问下为什么会无法读取文件呢?

时间:2022-09-13 00:14:50
在D盘目录下已经按照规定的路径将相应的文件创建出来。但是通过这种方法却没法让FILE定义的对象跟文件关联起来。

import java.io.File;

import org.junit.Test;

public class FileTest {

@SuppressWarnings("unused")
@Test
public void Test2(){
File file1 = new File("d/IO/Hello.txt");
File file2 = new File("Ge.txt");


System.out.println(file1.exists());
System.out.println(file1.canWrite());
System.out.println(file1.canRead());
System.out.println(file1.isFile());
System.out.println(file1.isDirectory());
System.out.println(file1.lastModified());
System.out.println(file1.length());

System.out.println(file2.exists());
System.out.println(file2.canWrite());
System.out.println(file2.canRead());
System.out.println(file2.isFile());
System.out.println(file2.isDirectory());
System.out.println(file2.lastModified());
System.out.println(file2.length());
}


如上面的程序。运行结果

false
false
false
false
false
0
0
true
true
true
true
false
1466044690836
3

8 个解决方案

#1


就好像通过绝对路径没有办法访问文件,而通过相对路径则可以访问。难道是某些设置有问题。

#2


你的文件路径不对

#3


@Test
public void Test3() throws IOException{

File file2 = new File("Why.txt");
System.out.println(file2.createNewFile());

File file1 = new File("d/IO/Hello.txt");
System.out.println(file1.createNewFile());


}


这样的时候,file2创建成功,但是File1则提示错误,说找不到文件路径。

#4


引用 2 楼 qq_15915835 的回复:
你的文件路径不对

要怎么写呢。我已经在对应的盘里创建了文件了的。

#5


java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.dzr.file.FileTest.Test3(FileTest.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

#6


少一个冒号
D:/IO/Hello.txt

#7


引用 6 楼 qq_15915835 的回复:
少一个冒号
D:/IO/Hello.txt


是啊 你的d盘后面少冒号了。。。

#8


引用 6 楼 qq_15915835 的回复:
少一个冒号
D:/IO/Hello.txt
谢谢了,刚刚检查出来,尴尬。我还百度,JAVA为什么不能读取绝对路径。~~~

#1


就好像通过绝对路径没有办法访问文件,而通过相对路径则可以访问。难道是某些设置有问题。

#2


你的文件路径不对

#3


@Test
public void Test3() throws IOException{

File file2 = new File("Why.txt");
System.out.println(file2.createNewFile());

File file1 = new File("d/IO/Hello.txt");
System.out.println(file1.createNewFile());


}


这样的时候,file2创建成功,但是File1则提示错误,说找不到文件路径。

#4


引用 2 楼 qq_15915835 的回复:
你的文件路径不对

要怎么写呢。我已经在对应的盘里创建了文件了的。

#5


java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.dzr.file.FileTest.Test3(FileTest.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

#6


少一个冒号
D:/IO/Hello.txt

#7


引用 6 楼 qq_15915835 的回复:
少一个冒号
D:/IO/Hello.txt


是啊 你的d盘后面少冒号了。。。

#8


引用 6 楼 qq_15915835 的回复:
少一个冒号
D:/IO/Hello.txt
谢谢了,刚刚检查出来,尴尬。我还百度,JAVA为什么不能读取绝对路径。~~~