http://ruixiazun.blog.163.com/blog/static/9068791820101124105241163/

第一种方法:
       String path = "file:///android_asset/文件名";

第二种方法:
    InputStream abpath = getClass().getResourceAsStream("/assets/文件名");


若要想要转换成String类型

String path = new String(InputStreamToByte(abpath ));


    private byte[] InputStreamToByte(InputStream is) throws IOException {
        ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
        int ch;
        while ((ch = is.read()) != -1) {
            bytestream.write(ch);
        }
        byte imgdata[] = bytestream.toByteArray();
        bytestream.close();
        return imgdata;
    }

 

http://www.dewen.org/q/5544

 

通过file:///的方式访问是Windows系统下的远程访问机制,android下支持用http或者ftp访问的。
可以试试以下代码:

 

  
  1. URL url =new URL("http://IP/android_asset/test.txt");
  2. HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();
  3. urlConnection.connect();
  4. **InputStream inputStream = urlConnection.getInputStream();**
  5. int totalSize = urlConnection.getContentLength();

 

 

 

想通过 File 类获取 assets 文件夹的数据是不现实的,
因为那些文件还都在 apk 压缩包里面

 

而至于 file:///android_asset/xx 的说法,之所以有
那是为了方便自己的应用调用 webview 来装载页面,并非统一的 file:// 协议

 

lz 可以尝试一下默认的浏览器
打开 file:///mnt/sdcard/xx.txt 是完全可行。
而 File 类去打开文件的话,需要的只是绝对路径,即 /mnt/sdcard/xx.txt

 

如果不能确定 assets 文件夹是否含有需要的文本,可以使用如下的方法:

 

  
  1. try{
  2.     String[] list = getAssets().list("");
  3.     for(int i =0; i < list.length; i++){
  4.         System.out.println(list[i]);
  5.     }
  6. }catch(IOException e){
  7.     e.printStackTrace();
  8. }

 

http://blog.csdn.net/zuolongsnail/article/details/6444806

 

  1. AssetManager am = null;  
  2. am = getAssets();  
  3. InputStream is = am.open("filename"); 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 pcwiki 的頭像
    pcwiki

    pcwiki的部落格

    pcwiki 發表在 痞客邦 留言(1) 人氣()