本文实例为大家分享了Android读写文件工具类的具体代码,供大家参考,具体内容如下
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);//设置流读取方式
BufferedReader buffReader = new BufferedReader(inputReader);
String line;
try {
while (null != (line = buffReader.readLine())) {
content += line + "\n";//读取的文件容
}
is.close();//关闭输入流
} 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. 清单文件中添加读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2.Android6.0以上版本要动态申请读写权限
ArrayList<String> permissionList = new ArrayList<>();
private String[] permissions = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
//检测是否有写的权限
//判断手机版本,如果低于6.0 则不用申请权限,直接拍照
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();
}
@Override
public 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;
}
}
您可能感兴趣的文章:读写Android中assets目录下的文件的方法详解Android中文件读写(输入流和输出流)操作小结Android手机内存中文件的读写方法小结Android应用程序中读写txt文本文件的基本方法讲解Android编程之文件的读写实例详解Android 读写文件方法汇总android开发之Json文件的读写的示例代码Android如何读写CSV文件方法示例android 开发 文件读写应用案例分析Android日志文件的读写工具类