Файл приложения Android не может пройти модульный тест

Я пытаюсь использовать android append на txt-файле. appendМетод не может пройти модульный тест.

образец:

Я пытался добавить «123456» дважды, чтобы получить «123456123456», но я получил ошибку:

junit.framework.ComparisonFailure: expected:<123456[]> but was:<123456[123456]>  

Мой вопрос в том, что означает <> []in <123456[]>and <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-карты, каким — либо образом я могу написать в общественном месте я могу прочитать файл напрямую? Прямо сейчас путь подобен «data/data/files/..«

1 ответ

  1. Изменение

     FileOutputStream fOut = new FileOutputStream(filePath);
    

    к

    FileOutputStream fOut = new FileOutputStream(filePath, true);
    

    Второй параметр означает добавить или нет.

    Еще один способ для добавления:

    outputStream = context.openFileOutput(fileName, Context.MODE_APPEND);

    Контекст.MODE_APPEND mode проверит файл существует или нет. Если нет, то создайте файл и добавьте в конце.