文件保存在app下,主要是创建文件、续写内容、读取内容的实现思路。最后可以通过okhttp3或者Retorfit实现与服务器交互,post上送文件。
private String filename = Environment.getExternalStorageDirectory().getCanonicalPath() + "/" + "2.txt";
// 运行方法
private void saveAppendMessage() {
createFile(filename);
writeData(filename, "weqweqwe12321321312");
bufferRead(filename);
}
//创建文件
private void createFile(String fileURL) {
File logFile = new File(fileURL);
// Make sure log file is exists
if (!logFile.exists()) {
boolean result = false; // 文件是否创建成功
try {
result = logFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
if (result) {
Log.e("chenxh", "");
}
} else {
Log.e("chenxh", "文件已存在");
}
}
//续写内容
private boolean writeData(String fileURL, String message) {
File file = new File(fileURL);
RandomAccessFile raf = null;
try {
//如果为追加则在原来的基础上继续写文件
raf = new RandomAccessFile(file, "rw");
raf.seek(file.length());
raf.write(message.getBytes());
raf.write("\n".getBytes());
Log.e("chenxh", "写入成功");
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
//读取文件内容
public void bufferRead(String filename) {
try {
BufferedReader bfr = new BufferedReader(new FileReader(new File(filename)));
String line = bfr.readLine();
StringBuilder sb = new StringBuilder();
while (line != null) {
sb.append(line);
sb.append("\n");
line = bfr.readLine();
}
bfr.close();
Log.e("chenxh", "bufferRead: " + sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}