在内存中创建mdb副本时发生java错误
我使用下面的代码在内存中创建mdb文件的副本,但它在DatabaseBuilder构造函数上给出了空指针异常,即不存在任何文件,我想要的是创建该文件的副本,并对其进行操作,然后将副本返回outputstream
File tmp = new File("test.mdb");
FileChannel channel = MemFileChannel.newChannel(tmp,DatabaseImpl.RW_CHANNEL_MODE);
FileUtils.copyFile(file , tmp);
Database db = new DatabaseBuilder(tmp).setChannel(channel).open();
# 1 楼答案
因此,您在项目中有一个预先制作的Access数据库文件作为资源。您可以先使用
Class#getResourceAsStream
打开资源,然后使用Jackcess打开该数据库的内存副本。。。将
InputStream
传递给JackcessMemFileChannel
。。。然后使用
DatabaseBuilder
从通道打开Database
:完成对数据库内存副本的更改后,可以将通道的内容发送到OutputStream。比如