它不能这样做。也许Java支持某种机制来创建某种形式的虚拟文件,这种虚拟文件在本地(作为当前进程)呈现为某种物理文件。
我可以想出一种解决限制的方法,但在您的上下文中这可能不可行或不可接受。您可以更改的服务来回报数据库的转储和装载,在接收器的内存数据库:
这里是产生垃圾的方式:
# sqlite3
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table foo (i text);
sqlite> insert into foo values ('a');
sqlite> insert into foo values ('b');
sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE foo (i text);
INSERT INTO foo VALUES('a');
INSERT INTO foo VALUES('b');
COMMIT;
我不认为SQLite的API支持打开某种内存块 - > http://sqlite.org/c3ref/open.html - 也许如果你在内存中创建了一些文件系统,但是我建议你把流保存到一个文件中,然后使用它。 – zapl
也许使用像“jimfs”这样的虚拟文件系统? – Joel