Android文件訪問
阿新 • • 發佈:2017-07-22
dwr con sd卡 filename 修改 andro 寫入 rac contex
Android中對於文件操作除了java的基礎庫匯總的IO、File等之外,還提供了幾種API
1、Context類提供的openFileOutput()和openFileInput()兩個方法分別獲取IO流,然後就可以進行相關讀寫操作了。
寫操作中有個文件的操作模式的參數,也是Context提供的幾個常量:MODE_PRIVATE,覆蓋文件,默認模式;
MODE_APPEND,追加內容,不存在就新建。
//讀取文件
public String load(Context context,String fileName) { FileInputStream is=null; BufferedReader reader=null; StringBuilder result=new StringBuilder(); try { is=context.openFileInput(fileName); reader = new BufferedReader(new InputStreamReader(is)); String l=""; while((l=reader.readLine())!=null) { result.append(l); } }catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(reader!=null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } }return result.toString(); }
//寫入文件
public boolean write(Context context,String fileName,String content) { FileOutputStream os=null; BufferedWriter writer=null; try { os=context.openFileOutput(fileName,context.MODE_APPEND); writer=new BufferedWriter(new OutputStreamWriter(os)); writer.write(content); return true; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(writer!=null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } return false; }
2、下面使用的四個Environment的方法,獲取當前運行環境的四個不同目錄,返回一個File對象,我們可以依據這個File
對象進行新建、寫入、讀取等操作。對於不同廠商,對於sd卡手機內存的訪問api可能會有修改,這些需要實際情況,實際分析。
Log.i("info","getDataDirectory()"+Environment.getDataDirectory().getAbsolutePath()); Log.i("info","getRootDirectory()"+Environment.getRootDirectory().getAbsolutePath()); Log.i("info","getExternalStorageDirectory()"+Environment.getExternalStorageDirectory().getAbsolutePath()); Log.i("info","getExternalStoragePublicDirectory()"+Environment.getExternalStoragePublicDirectory("basePath").getAbsolutePath());
Android文件訪問