私が 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)
プログラムの 2 つのクラスを次に示します。
ユーザークラス:
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;
}
}
そして、ここにメインクラスがあります:
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());
}
}
出力
2019-04-22 08:40:28,895 [main] INFO g.t.service.impl.CsvServiceImpl - Directory structure created data/test/tnx-log/tnc.log false
2019-04-22 08:40:28,895 [main] INFO g.t.service.impl.CsvServiceImpl - file.getAbsoluteFile() : C:\Users\jigar\apps\workspace\trade-publisher\data\test\tnx-log\tnc.log canWrite() : false
2019-04-22 08:40:28,895 [main] INFO g.t.service.impl.CsvServiceImpl - txn log file created data/test/tnx-log/tnc.log true
2019-04-22 08:40:28,957 [main] INFO g.t.service.impl.CsvServiceImpl - Directory structure created data/test/tnx-log/tnc.log false
2019-04-22 08:40:28,957 [main] INFO g.t.service.impl.CsvServiceImpl - file.getAbsoluteFile() : C:\Users\jigar\apps\workspace\trade-publisher\data\test\tnx-log\tnc.log canWrite() : false
@Override
public void createTxnInfoFile() throws IOException {
File file = new File(txnLogFile);
if (!file.exists()) {
boolean directoryStructureCreated = file.getParentFile().mkdirs();
logger.info("Directory structure created {} {} ", txnLogFile, directoryStructureCreated);
logger.info("file.getAbsoluteFile() : " + file.getAbsoluteFile() + " canWrite() : " + file.canWrite());
boolean fileCreated = file.createNewFile();
logger.info("txn log file created {} {} ", txnLogFile, fileCreated);
}
file = null;
}