Написать файл в Android Studio и сохранить его на компьютер - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть тест junit, и я хочу записать данные в текстовый файл и сохранить их на компьютере, но моя реализация не работает должным образом.

Сначала у меня есть класс, содержащий необходимые методы для записи файла.

public class Writer {
    private File logFile;

    public Writer() {
        String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
        this.logFile = new File("TestCase " + timeLog);
    }

    public File getLogFile() {
        return logFile;
    }

    public void write(String text) {
        BufferedWriter writer = null; 
        try {
            writer = new BufferedWriter(new FileWriter(getLogFile(), true));
            writer.append(text);
            writer.newLine();
        } catch (IOException e) {
            Log.d("TFG", "Se ha producido una excepción al escribir en el fichero");
            e.printStackTrace();
        } finally {
            try {
                if(writer!= null){
                    writer.close();
                }
            } catch (IOException e) {
                Log.d("TFG", "Se ha producido una excepción al cerrar el fichero");
                e.printStackTrace();
            }
        }
    }

    public String getPath() {
        String path = "";
        try {
            path = logFile.getAbsolutePath();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return path;
    }
}

Я использую его для упрощения записи данных, когда пишу тест.Простой тест junit выглядит так:

public void testWriteFile() {
    Writer writer = new Writer();
    Log.d("TFG",writer.getPath());
    writer.write("Hello");
}

И это вывод logcat:

2019-02-06 21:27:27.868 26697-26714/appPackage.testing D/TFG: /TestCase 20190206_212727
2019-02-06 21:27:27.869 26697-26714/appPackage.testing D/TFG: Se ha producido una excepción al escribir en el fichero
...