выходной журнал Android, но я не могу вывести несколько строк - PullRequest
0 голосов
/ 14 марта 2019

У меня проблема в том, что я написал программу для Android. Я хочу сохранить пользовательский ввод в журнал. но, что бы я ни делал. Я могу сохранить только одну строку. новые данные будут покрывать старые данные, когда я нажимаю кнопку. Как я могу сделать, чтобы сохранить данные, а не покрыть их?

это мой код, mainactivity.java

public class MainActivity extends AppCompatActivity {
private EditText acc;
private Button login;
private Write write = new Write(MainActivity.this);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
   login = (Button)findViewById(R.id.login);
 acc=(EditText)findViewById(R.id.acc);
 login.setOnClickListener(getDBRecord);

}

private Button.OnClickListener getDBRecord = new Button.OnClickListener() {
    public void onClick(View v) {
     String car_num=acc.getText().toString().toUpperCase();
           write.WriteFileExample(car_num);
    }
};

}

а это мой код, напиши.java

public class Write {
private static Context context;

public Write(Context context) {
    this.context = context;
}

public static void WriteFileExample(String message) {
    FileOutputStream fop = null;
    File file;
    String content = message;

    try {
        File sdcard = Environment.getExternalStorageDirectory();

        file = new File(sdcard, "myLog.log"); //輸出檔案位置

        if (!file.exists()) { // 如果檔案不存在,建立檔案
            file.createNewFile();
        }
       fop =new  FileOutputStream(file);
        byte[] contentInBytes = content.getBytes();// 取的字串內容bytes

        fop.write(contentInBytes); //輸出

    } catch (IOException e) {} 
    finally {
        try {
            if (fop != null) 
                fop.close();
            } catch (IOException e) {}
    }
}
}

спасибо

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

заменить

fop =new  FileOutputStream(file);

на

fop =new  FileOutputStream(file, true);

Вторым параметром является опция append.Установив значение true, вы будете добавлять новый контент к старому, а не перезаписывать старый.

0 голосов
/ 14 марта 2019

как насчет использования FileWriter и BufferedWriter? Вы можете добавить свой текст данных журнала.

вот пример, который я использую в одном из моих текущих приложений.

BufferedWriter bw = BufferedWriter(new FileWriter([LogFile path], [append text]));
bw.write(strLog);
bw.write("\n");
bw.flush();

вы можете установить опцию добавления текста (логическое значение) на FileWriter, чтобы ваш существующий текст оставался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...