gpt4 book ai didi

java - 在android中加载和保存数据文件

转载 作者:行者123 更新时间:2023-11-29 21:51:38 24 4
gpt4 key购买 nike

我正在做一个用 java 加载和保存文件的简单应用程序。我正在尝试将它移植到 Android,但无法让它查看文件。

我目前使用的文件路径是

private static final String SAVE_FILE_PATH = "data/save";

这是从文件加载数据的函数:

public void loadData() throws FileNotFoundException {
File file = new File(SAVE_FILE_PATH);

Scanner scanner;

if (file.exists()) {

scanner = new Scanner(new FileInputStream(file));
try {
while (scanner.hasNextLine()) {
allPlayers.add(new Player(scanner.nextLine()));
}
} finally {
scanner.close();
}
}
else {
System.out.println("No file found");
}

} finally {
scanner.close();
}
}

}

最佳答案

getExternalStorageDirectory() 为您获取 SD 卡的路径时,请考虑使用 Activity.getExternalFilesDir(),它将返回(并在必​​要时创建)一个名义上的目录对您的应用程序是私有(private)的。它还具有一个优点,即如果应用程序被卸载,它会自动为您删除。这是 API 8 中的新功能,因此如果您支持旧设备,您可能不想使用它。

否则,您将不得不听从 ρяσѕρєя K 的建议。不要忘记创建您要使用的存储目录。我的代码通常如下所示:

/**
* Utility: Return the storage directory. Create it if necessary.
*/
public static File dataDir()
{
File sdcard = Environment.getExternalStorageDirectory();
if( sdcard == null || !sdcard.isDirectory() ) {
// TODO: warning popup
Log.w(TAG, "Storage card not found " + sdcard);
return null;
}
File datadir = new File(sdcard, "MyApplication");
if( !confirmDir(datadir) ) {
// TODO: warning popup
Log.w(TAG, "Unable to create " + datadir);
return null;
}
return datadir;
}


/**
* Create dir if necessary, return true on success
*/
public static final boolean confirmDir(File dir) {
if( dir.isDirectory() ) return true;
if( dir.exists() ) return false;
return dir.mkdirs();
}

现在使用它来指定您的保存文件:

File file = new File(dataDir(), "save");

Scanner scanner;

if (file.exists()) {
// etc.
}

关于java - 在android中加载和保存数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270852/

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