Android实现文件的保存和读取

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileStorageUtils {

    /**
     * 保存字符串到指定路径的文件
     * @param filePath 文件路径(带上文件名)
     * @param data 要保存的数据
     */
    public static void saveDataToFile(String filePath, String data) {
        try {
            FileOutputStream fos = new FileOutputStream(filePath);
            fos.write(data.getBytes());
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 从指定路径的文件中读取字符串
     * @param filePath 文件路径(带上文件名)
     * @return 文件中保存的字符串,如果文件不存在返回 null
     */
    public static String loadDataFromFile(String filePath) {
        StringBuilder sb = new StringBuilder();
        try {
            FileInputStream fis = new FileInputStream(filePath);
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader br = new BufferedReader(isr);
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }
            fis.close();
            isr.close();
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        return sb.toString();
    }

    /**
     * 判断指定的文件是否存在
     * @param filePath 文件路径
     * @return 文件存在返回 true,否则返回 false
     */
    public static boolean isFileExist(String filePath) {
        File file = new File(filePath);
        return file.exists();
    }

    /**
     * 删除指定的文件
     * @param filePath 文件路径
     */
    public static void deleteFile(String filePath) {
        File file = new File(filePath);
        if (file.exists()) {
            file.delete();
        }
    }
}

权限问题

写入内部储存是不要权限的/data/data/xxx.xxx.xxx/files

写入/sdcard/Download是要读写外部储存权限的

我要存什么文件一般就在这两个地方,其他地方会根据安卓的版本的不同而不同很麻烦

posted @ 2023-03-19 11:42  Z_Chan  阅读(124)  评论(0编辑  收藏  举报