在我的Android应用中,我正在提取资产文本文件,然后将其复制到系统位置。
但是,文字会像字符一样乱码!
代码如下:
final ProgressDialog initdrunning = new ProgressDialog(
MainActivity.this);
initdrunning.setTitle("Please wait...");
initdrunning
.setMessage("Working, please wait...");
initdrunning.setCancelable(false);
initdrunning.show();
AssetManager assets = getAssets();
try {
InputStream input = assets
.open("30clearlog.txt");
int size = input.available();
byte[] buffer = new byte[size];
input.read(buffer);
input.close();
String init = buffer.toString();
initfile = File.createTempFile(
"30clearlog", "");
FileWriter writer = new FileWriter(
initfile);
writer.write(init);
writer.close();
Log.d("message", buffer.toString());
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getBaseContext(),
"Unable to extract script :(",
Toast.LENGTH_SHORT).show();
}
Thread initd = new Thread() {
@Override
public void run() {
super.run();
Shell.SU.run("mount -o remount,rw /system");
Shell.SU.run("cp "
+ initfile
.getAbsolutePath()
+ " /system/etc/init.d/90clearlog");
initdrunning.cancel();
}
};
initd.start();
}
});
文件中的文字只是test
,但在我的设备上最终为[B@416fa200
。
知道为什么吗?
答案 0 :(得分:0)
buffer.toString()
不正确,因为它使用该类的默认实现。
应改为使用:
String init = new String(buffer);