我有一个严重的问题,我需要将数据导出到一个文件及其代码,我没有任何错误或异常,这里是代码。
public static void writeString(String path, String line, boolean append){
FileHandle file = Gdx.files.local(path);
file.writeString(line, append);
}
文件' prueba.txt'它是空的。 我在这里使用代码:
Utilities.writeString("prueba.txt", "Hello world!", false);
System.out.println("OUTPUT: "+Utilities.getLine("prueba.txt"));
这就是输出:
I / System.out:OUTPUT:
在PC上所有工作都很好,只有在android中我才会出现错误'
PD:对不起我的英文,非常糟糕:/答案 0 :(得分:0)
尝试添加:
file.close();
行后:
file.writeString(....)
答案 1 :(得分:0)
您无法写入LibGdx的内部文件存储,只能读取。
FileHandle file = Gdx.files.local(String path);
您可以使用LibGdx的本地文件存储。这些存储在Android上名为man page here。您可以读取和写入此存储,但它是您应用程序的私有存储,因此只有您的应用程序才能访问它。
HELLO WORLD
以下代码足以在prueba.txt
上写入存储在本地文件存储中的FileHandle file = Gdx.files.local("prueba.txt");
file.writeString("HELLO WORLD", false); //write to file
System.out.println(charString=file.readString()); //read file
。
AndroidManifest.xml
确保您拥有<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
文件
build.gradle
如果您的Android目标SDK大于或等于API 23,则此权限是不够的,您需要在继续执行与EXTERNAL_STORAGE相关的任何工作之前获取运行时权限。对于当前的targetSdkVersion,检查你的default AndroidManifest.xml
文件的defaultConfig,如果没有出现他们的check -ea
文件。
答案 2 :(得分:0)
最好的方法是使用BufferedWriter,像这样:
BufferedWriter outColF = null;
try {
if(!Gdx.files.local(DIR).exists())
Gdx.files.local(DIR).mkdirs();
if(YOUR_FILE.exists())
YOUR_FILE.delete();
outColF = new BufferedWriter(new OutputStreamWriter(YOUR_FILE.write(true)));
outColF.write(OBJECT);
} catch (Throwable e) {
} finally {
try {
if (outColF != null) outColF.close();
} catch (IOException e) {
}
}
此方法适用于Android和桌面。