has*_*err 4 java exception java-io
在我正在阅读Java的书中,它通过使用写入文件并将其存储的程序来演示序列化.我收到一个奇怪的错误,我不知道如何阅读,它拒绝我访问创建.txt文件.这是错误:
Exception in thread "main" java.io.FileNotFoundException: C:\testFile.txt (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at serializableTests.MyProgram.main(MyProgram.java:18)
Run Code Online (Sandbox Code Playgroud)
这是该计划的两个类:
用户类:
public class User implements Serializable {
private static final long serialVersionUID = 4415605180317327265L;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Run Code Online (Sandbox Code Playgroud)
这是主要课程:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
public class MyProgram {
public static void main(String[] args) throws IOException {
User user = new User();
user.setUsername("tpage");
user.setPassword("password123");
File file = new File("C:\\testFile.txt");
OutputStream fileOutputStream = new FileOutputStream(file);
ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
outputStream.writeObject(user);
System.out.println("I've store the user object in a file called " + file.getName());
}
}
Run Code Online (Sandbox Code Playgroud)
mdm*_*dma 12
在最新版本的Windows上,如果没有提升权限,则无法写入系统驱动器的根文件夹.
要使其工作,请将位置更改为另一个驱动器或更改为C中的子文件夹,例如您的配置文件目录,例如c:\ users\yourname\testfile.txt
(请注意,您使用的是.txt结尾,但生成的文件在编辑器中无法读取.序列化是二进制格式.)
编辑:
在代码更改中实现此目的
File file = new File("C:\\testFile.txt");
Run Code Online (Sandbox Code Playgroud)
喜欢的东西
File file = new File("C:\\users\\bane\\testFile.txt");
Run Code Online (Sandbox Code Playgroud)
我已经使用你的SO名称"bane" - 替换你的电脑上的任何登录名.