Android读取写入文件的方法

参考地址:https://blog.csdn.net/harry_helei/article/details/64910713

1.按行读取指定文件

    /**
    *  按行读取指定文件,输出到ArrayList
    */
    public static void readDataFromFile(String fileName) {
        if (fileName == null) return;

        File file = new File("/storage/emulated/0/" + fileName);//从内存根目录读取文件
        if (file.isDirectory()) {
            System.out.println(fileName + " is directory");
            return;
        } else {
            try {
                InputStream inputStream = new FileInputStream(file);
                if (is != null) {
                    InputStreamReader inputStreamReader = new InputStreamReader(inputStream );
                    BufferedReader bfReader= new BufferedReader(inputStreamReader );
                    String strLine;
                    List strList = new ArrayList();
                    while ((strLine= bfReader.readLine()) != null) {
                        System.out.println(strLine);
                        strList.add(strLine);//添加到strList中,方便数据处理
                    }
                }
            } catch (FileNotFoundException e) {
                System.out.println(fileName + " doesn't found!");
            } catch (IOException e) {
                System.out.println(fileName + " read exception, " + e.getMessage());
            }
        }
    }

2.向指定文件写入数据

    /**
     * 字符串保存到手机内存设备中
     *
     * @param str 
     */
    public static void saveFile(String str, String fileName) {
        // 创建String对象保存文件名路径
        try {
            // 创建指定路径的文件
            File file = new File(Environment.getExternalStorageDirectory(), fileName);
            // 如果文件不存在
            if (file.exists()) {
                // 创建新的空文件
                if (file.delete()) {
                    System.out.println("success");
                }
            }
            if (file.createNewFile()) {
                // 获取文件的输出流对象
                FileOutputStream outStream = new FileOutputStream(file);
                // 获取字符串对象的byte数组并写入文件流
                outStream.write(str.getBytes());
                // 最后关闭文件输出流
                outStream.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * write data to txt
     */
    public static void writeStringToTxt(byte[] array, String fileName) throws IOException {
        // 第1步、使用File类找到一个文件
        File f = new File("/storage/emulated/0/" + File.separator + fileName);    // 声明File对象
        // 第2步、通过子类实例化父类对象
        Writer out;    // 准备好一个输出的对象
        out = new FileWriter(f, true);    // 通过对象多态性,进行实例化
        // 第3步、进行写操作
        String str = new String(array) + "\n";
        out.write(str);// 将内容输出,保存文件
        // 第4步、关闭输出流
        out.close();// 关闭输出流
    }

 

你可能感兴趣的:(Android入门)