BufferedReader не может найти файл в проекте Android - PullRequest
0 голосов
/ 03 января 2012

У меня была проблема, когда я не мог прочитать файл в Android и обнаружил, что это потому, что файл не может быть найден.Теперь я создал программу «голые кости»:

public class LoginView extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loginpanel); 
    Button button = (Button) findViewById(R.id.btnLogin);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            ReadingTest rt = new ReadingTest();
        }
    });
}

ReadingTest.java

public class ReadingTest {

private BufferedReader br;

public ReadingTest () {
    try {
        br = new BufferedReader (new FileReader("profiles"));
        System.out.println("BufferedReader was successful...");
    } catch (FileNotFoundException e) {
        System.out.println("BufferedReader was unsuccessful...");
        e.printStackTrace();
    }
}

Эта программа должна прочитать файл профилей, который я поместил в то же место, что и AndroidManifest.xmlфайл, т.е. в корне проекта.Программа печатает, была ли она успешной или нет, и, к сожалению, она печатается неудачно.Может кто-нибудь сказать мне, где разместить файл и как получить к нему доступ через BufferedReader?Весь мой Java-проект, который я пытаюсь перенести, основан на чтении и записи в файлы, поэтому я не могу прогрессировать, пока это не будет сделано.Заранее спасибо!

РЕДАКТИРОВАТЬ: Хорошо, после некоторых исследований я могу открыть свой файл в моей основной деятельности !!Я поместил файл profiles.txt в папку res / raw в своей основной деятельности. Я написал следующий код:

is = this.getResources().openRawResource(R.raw.profiles);
    br = new BufferedReader(new InputStreamReader(is));

По какой-то причине мой BufferedReader может читать файл в основной деятельности, но если я пытаюсьчтобы создать BufferedReader, используя тот же код в отдельном классе, а затем продолжить, чтобы попытаться вызвать указанный класс, он выключает виртуальную машину и создает FATAL EXCEPTION: main в logcat.Любые идеи, как я могу изменить приведенный выше код, чтобы он работал?

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Возможно, вы просто называете это слишком быстро, и файл еще не загружен.Поиграйте с Thread.sleep () перед вызовом ready () в потоке.Возможно, блокировка в несколько миллисекунд является нормальной для файлового ввода-вывода.

0 голосов
/ 03 января 2012

Вы пробовали использовать Активы ?

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