我正在尝试在txt文件上使用android append。 append
方法无法通过单元测试。
示例:
我试图追加" 123456"两次得到" 123456123456",但我得到了错误:
junit.framework.ComparisonFailure: expected:<123456[]> but was:<123456[123456]>
我的问题是<> []
和<123456[]>
中<123456[123456]>
的含义是什么?
我的测试方法如下,我可以通过第一个assertEqual
public void appendFileCorrect() throws Exception {
String contentToWrite = "123456";
Context appContext = InstrumentationRegistry.getTargetContext();
FileManager manager = new FileManager("jim11.txt");
manager.append(contentToWrite);
String file = manager.readFromFile(appContext);
assertEquals(file, contentToWrite);
manager.append(contentToWrite);
String appendFile = manager.readFromFile(appContext);
assertEquals(appendFile, contentToWrite+contentToWrite);
}
追加到文件末尾的方法:
public String append(String content) throws IOException {
try {
FileOutputStream fOut = new FileOutputStream(filePath);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(content);
myOutWriter.close();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
return fileName;
}
阅读
的方法 public String readFromFile(Context context) throws IOException {
String ret = "";
try {
FileInputStream inputStream = context.openFileInput(fileName);
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder stringBuilder = new StringBuilder();
String receiveString = "";
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
bufferedReader.close();
ret = stringBuilder.toString();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return ret;
}
另外我的Android设备没有SD卡,任何方式我可以写到公共场所我可以直接读取文件?现在路径就像&#34; data/data/files/..
&#34;
答案 0 :(得分:0)
更改
FileOutputStream fOut = new FileOutputStream(filePath);
到
FileOutputStream fOut = new FileOutputStream(filePath, true);
第二个参数表示是否附加。
追加的另一种方式是:
outputStream = context.openFileOutput(fileName, Context.MODE_APPEND);
Context.MODE_APPEND 模式将检查文件是否存在。如果没有,则创建文件并追加到最后。