【问题标题】:Append file data in another file在另一个文件中追加文件数据
【发布时间】:2016-06-07 17:44:31
【问题描述】:

在我目前的情况下,我创建了一个纬度/经度文件,并在每 3 分钟后将该文件上传到服务器上。当我从服务器收到成功上传的响应时,我删除了该文件。我想在删除之前将该文件数据移动到另一个文件中以进行备份。我使用了以下内容:

  private void moveFile(String inputPath, String inputFile, String outputPath) {

        InputStream in = null;
        OutputStream out = null;
        try {

            //create output directory if it doesn't exist
            File dir = new File (outputPath);
            if (!dir.exists())
            {
                dir.mkdirs();
            }


            in = new FileInputStream(inputPath + inputFile);
            out = new FileOutputStream(outputPath + inputFile);

            byte[] buffer = new byte[1024];
            int read;
            while ((read = in.read(buffer)) != -1) {
                out.write(buffer, 0, read);
            }
            in.close();
            in = null;

            // write the output file
          out.flush();
            out.close();
            out = null;

            // delete the original file
           // new File(inputPath + inputFile).delete();


        }

但这会从备份文件中移动旧数据并写入新数据而不是它。我想在不删除旧数据的情况下将新数据添加到现有文件中。我从过去 2 天开始就一直坚持下去。请帮帮我

【问题讨论】:

    标签: android file android-file


    【解决方案1】:

    查看这个类和构造函数,哪个第二个参数为真,这意味着将追加文件。

    public class LatLongFileWriter {
    
    private File file;
    FileWriter writer;
    
    public LatLongFileWriter (File file) {
        this.file = file;
        try {
            writer = new FileWriter(file, true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public void writeLatLong(String data) {
        try {
            writer.append(data);
            writer.flush();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    
    }
    

    你可以这样写

        LatLongFileWriter mFileWriter = new LatLongFileWriter (csvFile1);
        mFileWriter.writeLatLong("DATA");
    

    【讨论】:

      【解决方案2】:

      我推荐使用FileOutputStream,构造函数有两个参数,第一个参数是文件或指向文件的文件路径,第二个参数是是否追加。

      FileOutputStream fos = new FileOutputStream(yourFile, true);
      fos.write(yourString.getBytes());
      fos.close();
      

      【讨论】:

        猜你喜欢
        • 2014-11-22
        • 2012-06-30
        • 1970-01-01
        • 2011-07-05
        • 2013-09-29
        • 1970-01-01
        • 2012-05-23
        • 2012-05-24
        • 2015-05-28
        相关资源
        最近更新 更多