Android讀寫文件工具類詳解
本文實(shí)例為大家分享了Android讀寫文件工具類的具體代碼,供大家參考,具體內(nèi)容如下
public class Utils { private static String path1 = Environment.getExternalStorageDirectory().getAbsolutePath(); private static String path2 = Environment.getDownloadCacheDirectory().getAbsolutePath(); private static String pathExt = '/111/222/333/444/555/'; private static String fileName = '6.txt'; public static void write(String str) { String filePath = null; boolean hasSDCard =Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); if (hasSDCard) { filePath = path1 + pathExt + fileName; } else { filePath = path2 + pathExt + fileName; } try { File file = new File(filePath); if (!file.exists()) {//mkdirs()方法生成多層文件夾//mkdir()方法生成一層層文件夾//File dir = new File(file.getParent());//dir.mkdirs();file.getParentFile().mkdirs();//生成文件外層的文件夾file.createNewFile();//生成文件 } FileOutputStream os = new FileOutputStream(file); os.write(str.getBytes()); os.close(); } catch (Exception e) { e.printStackTrace(); } } public static String read() { String content = ''; String filePath; boolean sdcard = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); if (sdcard) { filePath = path1 + pathExt + fileName; } else { filePath = path2 + pathExt + fileName; } try { File file = new File(filePath); if (file.exists()) {FileInputStream is = new FileInputStream(file);InputStreamReader inputReader = new InputStreamReader(is);//設(shè)置流讀取方式BufferedReader buffReader = new BufferedReader(inputReader);String line;try { while (null != (line = buffReader.readLine())) { content += line + 'n';//讀取的文件容 } is.close();//關(guān)閉輸入流} catch (IOException e) { e.printStackTrace();} finally { try { if (null != is) { is.close(); } } catch (IOException e) { e.printStackTrace(); }} } } catch (FileNotFoundException e) { e.printStackTrace(); } return content; }}
1. 清單文件中添加讀寫權(quán)限
<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' /><uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE' />
2.Android6.0以上版本要?jiǎng)討B(tài)申請(qǐng)讀寫權(quán)限
ArrayList<String> permissionList = new ArrayList<>();private String[] permissions = { 'android.permission.READ_EXTERNAL_STORAGE', 'android.permission.WRITE_EXTERNAL_STORAGE' };//檢測是否有寫的權(quán)限//判斷手機(jī)版本,如果低于6.0 則不用申請(qǐng)權(quán)限,直接拍照if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (checkSelfPermission(permissions[0]) != PackageManager.PERMISSION_GRANTED) { permissionList.add(permissions[0]); } if (checkSelfPermission(permissions[1]) != PackageManager.PERMISSION_GRANTED) { permissionList.add(permissions[1]); } if (!permissionList.isEmpty()) { String[] permissions1 = permissionList.toArray(new String[permissionList.size()]); requestPermissions(permissions1, 1); } else { Utils.write('balabala'); Utils.read(); }} else { Utils.write('balabala'); Utils.read();} @Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: if (PackageManager.PERMISSION_GRANTED == grantResults[0]){ Utils.write('balabala'); Utils.read(); } else { Log.d(TAG, 'fail: '); } break; }}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)2. jsp+servlet簡單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))3. PHP循環(huán)與分支知識(shí)點(diǎn)梳理4. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)5. ASP實(shí)現(xiàn)加法驗(yàn)證碼6. ASP基礎(chǔ)入門第二篇(ASP基礎(chǔ)知識(shí))7. PHP session反序列化漏洞超詳細(xì)講解8. ASP基礎(chǔ)知識(shí)Command對(duì)象講解9. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享10. Spring注入Date類型的三種方法總結(jié)
