在我目前的情况下,我创建了一个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天。请帮帮我们
答案 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();