场景:需要读取指定文件的内容,此文件是手动存储到手机内置存储卡中的,且手机上不存在SD卡。
对于android通过activity提供的openFileOutput和openFileInput可以直接操作内置存储卡,但是保存到路径是用户看不到的:
创建的文件保存在/data/data/<package name>/files目录。
Environment.getExternalStorageDirectory()
这个方法是:当只有内置存储空间的时候,只能获取到内置存储空间的路径。
当内置存储空间和sd卡同时存在时候,只能获取Sd卡的路径,所以可以采用此方法进行。
public static String readURLConfig(){ String url = "#"; //默认的URL try{ filePath = Environment.getExternalStorageDirectory().toString()+"/wd/config.txt"; }finally{ if(existsFile(filePath)){ try { url = readFile(filePath); } catch (IOException e) { // } } } return url; }
/* * 判断文件是否存在 */ public static boolean existsFile(String filePath){ File file = new File(filePath); if(file.exists()){ return true; } return false; } /* * 读取文件 */ public static String readFile(String filePath) throws IOException{ InputStream is = new FileInputStream(filePath); int len = is.available(); byte []buffer = new byte[len]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while((is.read(buffer)) != -1){ baos.write(buffer); } byte []data = baos.toByteArray(); baos.close(); is.close(); return new String(data).trim(); }