android文件资源分为两类即:资产(assets)与资源(res可以通过R类来直接资源,也可以通过getAssets().open(file)来访问,在J2ME中一种常见的资源加载方式便是使用getClass().getResourceAsStream,那在android中能不能使用呢,答案是肯定,但是需要注意资源存放路径必须同类文件在一起(也即常用的SRC目录下。原理相当于类文件加载),使用这种方式可以完美解决J2ME移植到android上资源加载处理(经测试这种访问方式缺点有一个加载速度慢,完美的意义只针对移植J2ME api,使用这种方式加载可以不改动J2ME任何代码),下面给个简例: InputStream is; try { is = getClass().getResourceAsStream( "/example/pushpuzzle/data/jad.MF"); if (is == null) { System.out.println("Could not find the game board for level "); } else { int ch = 0; StringBuffer str = new StringBuffer(); while ((ch = is.read()) != -1) { str.append((char) ch); } String jad = str.toString(); String[] s = jad.split("/r/n"); for (String line : s) { System.out.println(line); } } } catch (Exception ex) { ex.printStackTrace(); } 注意事项,这个方式请不要使用is.available(),这个返回方式同J2ME平台一样往往是错的。 |
|
来自: 昵称11482448 > 《Android》