我的数据库中存储了一个文件text1.txt
,其中包含我想要显示的文本。该文件位于资产文件夹assets / text1.txt。
如何打开此文件并显示其内容?
代码是:
if (placetext != null) {
try
{
InputStream textpath = getAssets().open(text);
//Bitmap bit = BitmapFactory.decodeStream(textpath);
placetext.setText(text);
//placetext.setText(text);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
...模拟器上的视图只是text1.txt而不是文件的内容。
我已经有了解决方案
String text12 = b.getString(“texts”) 尝试{ InputStream = getAssets()。open(text12); // int size = is.available();
byte[] buffer = new byte[size]; is.read(buffer); is.close(); String text= new String(buffer); placetext = (TextView)findViewById(R.id.detailText2); placetext.setText(text); } catch (IOException e) { throw new RuntimeException(e); }
答案 0 :(得分:0)
这是正常的,因为:
InputStream textpath = getAssets().open(text);
我想这里:text代表要打开的文件的名称。
placetext.setText(text);
将文本中传入的文本放在文本字段中,所以现在是文件的名称。
要将文件的内容放在文本字段中,您必须打开文件,读取文件并将内容存储在StringBuffer中,然后将StringBuffer内容放在文本字段中。
编辑:
StringBuilder text = new StringBuilder();
Scanner scanner = new Scanner(new FileInputStream(new File('yourfile')));
try {
while (scanner.hasNextLine()){
text.append(scanner.nextLine());
}
}
finally{
scanner.close();
}
}
许多其他人用Java阅读文件内容的解决方案。
希望有所帮助
答案 1 :(得分:0)
这是我用来读取/ assets文件夹中存储的XML的内容:
public static String getXMLFromAssets(Context ctx, String pathToXML){
InputStream rawInput;
//create a output stream to write the buffer into
ByteArrayOutputStream rawOutput = null;
try {
rawInput = ctx.getAssets().open(pathToXML);
//create a buffer that has the same size as the InputStream
byte[] buffer = new byte[rawInput.available()];
//read the text file as a stream, into the buffer
rawInput.read(buffer);
rawOutput = new ByteArrayOutputStream();
//write this buffer to the output stream
rawOutput.write(buffer);
//Close the Input and Output streams
rawOutput.close();
rawInput.close();
} catch (IOException e) {
Log.e("Error", e.toString());
}
//return the output stream as a String
return rawOutput.toString();
}