我有问题。我创建了我的代码文本文件test.txt然后我用cat命令从系统文件中获取文本,这个文本放到我的test.txt,但我不知道如何从这个文件中读取文本。我需要从该文件中读取文本,然后将其保存到我的SharedPreferences中。 这是代码:
try {
FileOutputStream fos = new FileOutputStream("/sdcard/test.txt");
DataOutputStream dos = new DataOutputStream(fos);
dos.flush();
dos.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Process a;
try {
a = Runtime.getRuntime().exec("su");
DataOutputStream aaa = new DataOutputStream(a.getOutputStream());
aaa.writeBytes("cat /proc/sys/sad/asdsad > /sdcard/test.txt\n");
aaa.writeBytes("exit\n");
aaa.flush();
try {
a.waitFor();
if (a.exitValue() != 255) {
// TODO Code to run on success
toastMessage("root");
}
else {
// TODO Code to run on unsuccessful
toastMessage("not root");
}
} catch (InterruptedException e) {
// TODO Code to run in interrupted exception
toastMessage("not root");
}
} catch (IOException e) {
// TODO Code to run in input/output exception
toastMessage("not root");
}
答案 0 :(得分:3)
您无需将文件“复制”到SD卡即可阅读。
无论如何,使用“cat”进行复制并不是你想要的应用程序。当你放松对操作的所有控制;错误检测和处理变得更加困难。
只需使用FileReader
和BufferedReader
即可。可以找到一个示例here。这是一份副本:
File file = new File("test.txt");
StringBuffer contents = new StringBuffer();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String text = null;
// repeat until all lines is read
while ((text = reader.readLine()) != null) {
contents.append(text)
.append(System.getProperty(
"line.separator"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Log.e("TEXT", contents.toString());
所有这些都是非常基本的东西。你应该考虑阅读一些与Java相关的书或一些文章。