记一次将数据库数据写入文件的项目经历

记一次将数据库数据写入文件的项目经历

          • 若数据库信息只有文字数据,建议使用BufferedWriter,更快速更方便。若包含图片数据则只能使用字节流了。

 private File getFile() throws IOException {
    //以文件名创建文件变量
    File filename = new File("filename");
    BufferedWriter bufferedWriter = null;
    FileWriter fileWriter = null;
    //创建后的文件会生成默认的项目文件夹下,无需指定文件路径
    try {
        filename.createNewFile();
        fileWriter = new FileWriter(filename);
        //数据库中只包含文字信息,建议使用bufferedWriter写入文件,更快速。
        bufferedWriter = new BufferedWriter(fileWriter);
        List userList = new ArrayList<>();//假设该集合储存的是从数据库取得的用户信息
        if(CollectionUtils.isNotEmpty(userList)){
            for (TUser tUser : userList) {
                bufferedWriter.write(tUser.toString());//将toString方法重写成需求要求文件的格式
                bufferedWriter.newLine();//换行
            }
              fileWriter.flush();//数据写完用flush方法,不然数据写不出来
        }
        InputStream is = new FileInputStream(filename);//文件中得到流
        //第二种方法用字符串得到流。毕竟项目中无权限创建文件
        String s = "将数据封装成字符串";
        byte[] bytes = s.getBytes();
        InputStream is2 = new ByteArrayInputStream(bytes);
    } catch (IOException e) {
        e.printStackTrace();
        throw e;
    }finally {
        IOUtils.closeQuietly(bufferedWriter);
        IOUtils.closeQuietly(fileWriter);
        filename.delete();//只有流关闭后,才能将文件删除
    }  
}
若数据库信息只有文字数据,建议使用BufferedWriter,更快速更方便。若包含图片数据则只能使用字节流了。

####学习IOUtils工具类对完成流的关闭,而且当流关闭后,才能对文件进行删除工作。流的规范关闭必须在finally模块下关闭。

你可能感兴趣的:(IO流学习)