Загрузить текстовый файл -> открыть не удалось: ENOENT (нет такого файла или каталога). Я уверен, что проблема не в пути, но я не могу найти ошибку - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь загрузить файл и сохранить то, что написано в нем, но я всегда получаю сообщение «open fail: ENOENT». Файл находится в той же папке с java файлами. Остальная часть кода работает хорошо, и если я запускаю отдельно, также метод read ().

public class MainActivity extends AppCompatActivity {

    ListView list;
    Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        intent = new Intent(this, Second_activity.class);

        list = (ListView) findViewById(R.id.listView);

        System.out.println(read());

        String [] dati = {};

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dati);

        list.setAdapter(adapter);
        list.setOnItemClickListener(listener);
    }

    private AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView parent, View view, int position, long id) {
            String itemValue = (String) list.getItemAtPosition(position);
            intent.putExtra("listValue", itemValue);
            startActivity(intent);
        }
    };

    public String read(){
        String data = null;
        try {
            File myObj = new File("com/example/myapplication2/calendario.txt");
            Scanner myReader = new Scanner(myObj);
            while (myReader.hasNextLine()) {
                data = myReader.nextLine();
            }
            myReader.close();
        } catch (Exception e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
        return data;
    }
}

1 Ответ

0 голосов
/ 13 марта 2020

Ваш файл находится в вашем android пути к студийному проекту, и вам нужно поместить его в нужное место raw folder , во-вторых, получить его в нужном направлении. Файл ("....") предназначен для файла в путь устройства .

Начало работы.

Вам необходимо переместить файл в папку resource / raw, для создания этой папки просто щелкните правой кнопкой мыши на папке res, выберите «New»> «Directory», затем «studio» откроет диалоговое окно и попросит вас ввести имя.

enter image description here

, напишите «raw» и нажмите OK. Откройте папку res, и вы найдете в ней свою папку raw.

enter image description here

Затем вы можете поместить в нее такие файлы, как .txt, .mp3, и чтобы получить его, вы можете использовать этот код или аналогичный.

InputStreamReader inputStream = new InputStreamReader(getResources().openRawResource(R.raw.calendario))
BufferedReader reader = new BufferedReader();
String line = reader.readLine();
while (line != null) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...