如何使用存储在数据库中的路径打开assets文件夹中的文件?

时间:2011-12-10 00:17:09

标签: android sqlite text

我的数据库中存储了一个文件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);
          }

2 个答案:

答案 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();  
}