Простая проблема вывода файла Android - PullRequest
3 голосов
/ 13 апреля 2010

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

Вот код:

package com.example.files2;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;

public class files2 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String string1 = "Hey you";
    String string2 = "Is there anybody there";
    String string3 = "Can you hear me";

    setContentView(R.layout.main);

    try{

    File file = new File(Environment.getExternalStorageDirectory(), "file.txt");


    BufferedWriter writer = new BufferedWriter(new FileWriter(file));
    writer.write(string1);
    writer.newLine();
    writer.write(string2);
    writer.newLine();
    writer.write(string3);
    writer.newLine();
    writer.flush();
    writer.close();

} catch (IOException e) {
    e.printStackTrace();
}

}}

Файл пишет ОК, но вместо того, чтобы каждая переменная находилась в отдельной строке, я получаю только одну строку, которая гласит: «Привет, кто-нибудь есть? Вы меня слышите?»

Так что, я думаю, .newLine () не работает, но почему?

Есть простой ответ на эту проблему или лучший способ ее решить?

Спасибо всем, комментарии горячо приветствуются.

Джо

Ответы [ 2 ]

7 голосов
/ 13 апреля 2010

Ты уверен, что это не работает?Вы используете Windows?Я представляю, что Android, будучи ОС на базе UNIX, пишет \n вместо \r\n, как ожидает Windows.Что вы увидите, если вы наберете adb shell, а затем cat /sdcard/file.txt?

1 голос
/ 27 января 2012

Если это - в действительности - просто проявление векового несоответствия символов перевода строки UNIX / DOS (то есть файл правильно записывается на Android-устройстве на базе Linux, но не отображается правильно [скажем, в блокноте] на ПК с Windows), тогда один из ответов - просмотреть файл на ПК с помощью Vim (см. http://www.vim.org/download.php) или другого приложения, которое может автоматически определять символ перевода строки из содержимого файла (и сохранить в собственном формате Windows / DOS, если требуется).

Другой альтернативой является просмотр содержимого файла непосредственно на устройстве Android с помощью текстового редактора, такого как «Редактирование текста», доступного на рынке бесплатно.

Надеюсь, это поможет - извиняюсь, если я констатирую очевидное.

...