天天看点

libGDX-2.2:FileHande 文件操作前言FileHanderPreferenecs 键值对尝试

文章目录

  • 前言
  • FileHander
    • FileHande de 使用
  • Preferenecs 键值对
    • Preferenecs de 使用
  • 尝试

前言

这是第二节的番外,介绍在第二节提到过的

com.badlogic.gdx.files.FileHande

FileHander

com.badlogic.gdx.files.FileHande

存储一个文件的引用。 FileHande 的构造函数有:

  • FileHande(

    java.lang.String

    ) : 传入一个绝对路径(别用反斜杠!!!)或相对路径(项目文件下),指向路径文件(夹)
  • FileHande(FileHande) : 传入一个 FileHande 对象并指向其指向的文件(夹)

    当然你也可以使用

    com.badloc.gdx.Gdx.input

    获取 Filehande :
  • internal( String ) : 获取路径下(assets下的相对路径)的文件(夹),只读。一般作为图片读取等
  • local( String ) : 获取本地文件(应用私有目录),可读写。用来保存游戏数据
  • external( String ) : 获取外部文件(C:\Users\当前用户\或SD卡),可读写。用来保存较大数据或导出数据等

    Tips : 通过 external(String) 获取的文件(夹)必须在 C:\Users\用户 下,如果不在的话,则使用 FileHande( String ) 构造函数获取。

FileHande de 使用

FileHande 不止给纹理提供图片这个用处而已,它含有对文件(包含文件夹)的各种操作:

//获取文件的名称,含后缀名
String fileName= file.name() ;
//获取文件的路径,含后缀名
String filePath= file.path() ;
//判断文件是否存在
boolean isFileExists= file.exists() ;
//获取文件的父文件夹
FileHande parentFile= file.parent();
//获取文件的长度
long length= file.length();
//判断文件是否为文件夹
boolean isDirecroty= file.isDirecroty();
//读取文件内容
String readStr= file.readString();
//读取二进制内容
byte[] readBytes= file.readByte();
final boolean APPEND=true,NO_APPEND=false;
//写入字符串
file.writeString("hello,world",APPEND);
file.writeString("hello,World",NO_APPEND);
//写入二进制内容
file.writeBytes(bytes,APPEND);
//将文件复制到fileHander处
file.copyTo(fileHande);
//将文件移动到fileHander处
file.moveTo(fileHande);
//删除文件
file.delete();
//删除文件夹
file.deleteDirecroty();
           

Preferenecs 键值对

除了 FileHande ,libGDX还提供了

com.badlogic.gdx.preferenecs

类来存储键值对,使用

com.badlogic.gdx.Gdx.app.getPreferenecs(String arg0)

来获取 .prefs 文件:

Tips : Preferenecs 的真正存储路径是 C:\Users(用户)\ .prefs\

Preferenecs de 使用

//修改键key的值为value
prefs.put("key",value);
//将结果真正写入文件,put()之后调用。tips:尽量在所有put()之后调用
prefs.flush();
//获取键key的值
prefs.get("key");
//如果键key不存在,则返回defaultValue
prefs.get("key",defaultValue);
           

尝试

接下来,我们将制作一个有关文件操作的测试应用:

package com.libGDX.test;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.files.FileHandle;

public class Test extends ApplicationAdapter {
	
	@Override
	public void create() {
		super.create();
		FileHandle file=new FileHandle("C://test/test.txt");
                //如果文件不存在,将创建文件和文件夹,false表示不追加,而是覆盖原文件内容
		file.writeString("hello,libGDX FileHande!!!", false);
		System.out.println(file.readString());
                //删除文件的父文件夹,也会删除文件
		file.parent().delete();
		
		Preferences prefs=Gdx.app.getPreferences("test.prefs");
                //如果文件不存在,将创建文件
		prefs.putInteger("name", 25041);/*25041:D*/
                //写入文件
		prefs.flush();
		System.out.println(prefs.getInteger("name"));
	}
}
           

运行结果:

libGDX-2.2:FileHande 文件操作前言FileHanderPreferenecs 键值对尝试