gpt4 book ai didi

java - 尝试保存文件时找不到文件

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

我有一个奇怪的问题。我正在尝试保存 sqlite 数据库的备份。我已经创建了这段代码

String DB_PATH;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DB_PATH = context.getFilesDir().getAbsolutePath().replace("files", "databases") + File.separator;
}
else {
DB_PATH = context.getFilesDir().getPath() + context.getPackageName() + "/databases/";
}

String currentDBPath = "portals.db";
String backupDBPath = "backupname.db";
File sd = new File(Environment.DIRECTORY_DOWNLOADS + "/" + backupDBPath);
File data = new File(DB_PATH + currentDBPath);
try {
InputStream in = new FileInputStream(data);
OutputStream out = new FileOutputStream(sd);

// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();

} catch(Exception e) {
int test = 1;
e.printStackTrace();
}

当我运行此命令时,我收到 FileNotFound 异常。它不应该创建文件吗?我什至尝试创建一个虚拟文件,结果仍然相同。

请注意,我想将其保存在内部存储器上,因为我的设备中没有 SD 卡。该代码有什么问题?

最佳答案

我已经找到解决办法了。

解决我的代码行的问题

File sd = new File(Environment.DIRECTORY_DOWNLOADS + "/" + backupDBPath);

应该是这样的

    File sd = new File(Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_DOCUMENTS + "/" + backupDBPath);

对于 future 也有有趣的说明。文件已正确保存,但只有在拔下并插入设备后我才能看到它。因此,在连接到电脑时需要某种重启

关于java - 尝试保存文件时找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31996724/

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