我想知道如何逐个字符地从资产中读取文本文件。
例如,如果我有这个文件“text.txt”,里面有“12345”,我想一个一个地读取所有数字。
我已经在寻找这个,但我找不到任何解决方案。
谢谢。
我想知道如何逐个字符地从资产中读取文本文件。
例如,如果我有这个文件“text.txt”,里面有“12345”,我想一个一个地读取所有数字。
我已经在寻找这个,但我找不到任何解决方案。
谢谢。
用于getAssets().open("name.txt")
检索InputStream
on assets/name.txt
,然后根据需要读入。
感谢 CommonsWare 的回答 :) 连同我回复 Eric 的链接,我确实添加了您的代码,结果如下(完全正常):
AssetManager manager = getContext().getAssets();
InputStream input = null;
try {
input = manager.open("test.txt");
} catch (IOException e1) {
Log.d("ERROR DETECTED", "ERROR WHILE TRYING TO OPEN FILE");
}
try {
char current;
while (input.available() > 0) {
current = (char) input.read();
Log.d("caracter", ""+current);
}
} catch (IOException e) {
e.printStackTrace();
}
谢谢你们的帮助:)
编辑:下一个代码将读取所有文件行,而上面不是:
AssetManager manager = getContext().getAssets();
InputStream input = null;
InputStreamReader in = null;
try {
input = manager.open("teste.txt");
in = new InputStreamReader(input);
} catch (IOException e1) {
Log.d("ERROR DETECTED", "ERROR WHILE TRYING TO OPEN FILE");
}
try {
char current;
while (in.ready()) {
current = (char) in.read();
Log.d("caracter", ""+current);
}
} catch (IOException e) {
e.printStackTrace();
}
以字符为单位读取文件,通常用于读取文本、数字和其他类型的文件
public static char[] readFileByChars(File file) {
CharArrayWriter charArrayWriter = new CharArrayWriter();
char[] tempBuf = new char[100];
int charRead;
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
while ((charRead = bufferedReader.read(tempBuf)) != -1) {
charArrayWriter.write(tempBuf, 0, charRead);
}
bufferedReader.close();
return charArrayWriter.toCharArray();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}