本文链接: http://blog.csdn.net/xietansheng/article/details/50186811
LibGDX 基础教程(总目录)
LibGDX 应用运行在不同的平台: Desktop 系统(Windows,Linux,MAC OS X),Android, iOS 和 支持 JavaScript/WebGL 的浏览器,每一个平台对文件的读写操作都完全不同。LibGDX 的 Files 模块(Gdx.files)提供了统一的抽象的接口对不同平台的文件进行统一的读写操作。
FileHandle 类,代表一个文件或文件夹,文件或文件夹可以来自 文件系统,classpath, Android SD 卡,assets 资源文件目录。
文件可以存储在多个地方,分别对应不同的存储类型,下面介绍常用的其中 3 种存储类型的文件:
在不同的平台,某些存储类型可能不可用,使用前需要校验。校验外部/本地存储是否可用:
boolean isExtAvailable = Gdx.files.isExternalStorageAvailable();
boolean isLocAvailable = Gdx.files.isLocalStorageAvailable();
注意: HTML5 平台只有 Internal 类型的文件才可用并且只读,其他类型文件的读写均不支持。
查询本地/外部存储的根目录:
String extRoot = Gdx.files.getExternalStoragePath();
String locRoot = Gdx.files.getLocalStoragePath();
获取一个 FileHandle 实例:
FileHandle intHandle = Gdx.files.internal("data/myfile.txt");
FileHandle locHandle = Gdx.files.local("data/myfile.txt");
FileHandle extHandle = Gdx.files.external("data/myfile.txt");
校验文件或文件夹是否存在:
boolean exists = Gdx.files.external("doitexist.txt").exists();
校验一个 FileHandle 实例是否是文件夹:
boolean isDirectory = Gdx.files.external("test/").isDirectory();
遍历一个文件夹下的所有文件:
FileHandle[] files = Gdx.files.local("mylocaldir/").list();
for(FileHandle file : files) {
// do something interesting here
}
将文件内容读取为字符串:
FileHandle file = Gdx.files.internal("myfile.txt");
String text = file.readString();
将文件内容读取为二进制数据:
FileHandle file = Gdx.files.internal("myblob.bin");
byte[] bytes = file.readBytes();
写字符串数据到文件:
FileHandle file = Gdx.files.local("myfile.txt");
file.writeString("My god, it's full of stars", false);
写二进制数据到文件:
FileHandle file = Gdx.files.local("myblob.bin");
file.writeBytes(new byte[] { 20, 3, -2, 10 }, false);
Preferences 的值支持 String,long,int,float,boolean 类型。
获取一个 Preferences 实例:
Preferences prefs = Gdx.app.getPreferences("MyPreferences");
读写数据:
Preferences prefs = Gdx.app.getPreferences("MyPreferences");
prefs.putString("name", "Donald Duck");
String name = prefs.getString("name", "No name stored");
prefs.putBoolean("soundOn", true);
prefs.putInteger("highscore", 10);
修改了数据后,必须要调用 flush() 方法才能将数据同步到磁盘持久化:
prefs.flush();
Preferences 文件的实际存储位置: