gpt4 book ai didi

java - 尝试使用 Jackcess 打开 Access 数据库文件时出现 "Empty database file"异常

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:44 26 4
gpt4 key购买 nike

Jackcess 加密似乎无法打开提供的文件。

这是代码。我想做的是打开受密码保护的数据库并将指定的表导出为 .csv 文件。

    public class DBTool {
private final String source = "/Users/myMac/Desktop/database.mdb";
private final String destination = "/Users/myMac/Desktop/table.csv";
private File sourceF;
private File destinationF;
private Database db;

public DBTool() {

}

public void openEDB(){
sourceF = new File(source);
try {
db = new DatabaseBuilder(sourceF)
.setCodecProvider(new CryptCodecProvider("password"))
.open();
} catch (IOException ex) {
Logger.getLogger(DBTool.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void exportDB(){
sourceF = new File(destination);
try {
ExportUtil.exportFile(db, "TableName", destinationF);
} catch (IOException ex) {
Logger.getLogger(DBTool.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

这是错误我似乎不知道如何简单地打开要导出的文件。

java.io.IOException: Empty database file
at com.healthmarketscience.jackcess.impl.JetFormat.getFormat(JetFormat.java:276)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:378)
at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:248)
at accesstoolssim.DBTool.openEDB(DBTool.java:30)
at accesstoolssim.AccessToolsSim.main(AccessToolsSim.java:9)

Exception in thread "main" java.lang.NullPointerException
at java.io.FileOutputStream.<init>(FileOutputStream.java:203)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at java.io.FileWriter.<init>(FileWriter.java:90)
at com.healthmarketscience.jackcess.util.ExportUtil.exportFile(ExportUtil.java:204)
at com.healthmarketscience.jackcess.util.ExportUtil.exportFile(ExportUtil.java:172)
at accesstoolssim.DBTool.exportDB(DBTool.java:39)
at accesstoolssim.AccessToolsSim.main(AccessToolsSim.java:10)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

最佳答案

java.io.IOException: Empty database file
at com.healthmarketscience.jackcess.impl.JetFormat.getFormat(JetFormat.java:276)

告诉您 Jackcess 认为您尝试打开的文件不包含任何字节。即使没有(用户)表、查询等的 Access 数据库仍然具有非零文件大小,因为必须存在系统对象才能使其成为有效的数据库文件。

因此,您尝试打开的文件实际上存在但长度为零,或者您提供的路径无效。

关于java - 尝试使用 Jackcess 打开 Access 数据库文件时出现 "Empty database file"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com