将文件数据附加到另一个文件中

时间:2016-02-25 05:23:17

标签: android file android-file

在我目前的情况下,我创建了一个lat / long文件,并在每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天。请帮帮我们

2 个答案:

答案 0 :(得分:0)

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

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");

答案 1 :(得分:0)

我建议使用FileOutputStream,构造函数接受两个参数,第一个参数是指向文件的文件或文件路径,第二个参数是否是否附加。

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