0

我正在尝试加载文件并保存其中写入的内容,但我总是得到“打开失败: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;
    }
}
4

1 回答 1

0

您的文件位于您的 android studio 项目路径中,然后您需要将其放在正确的原始文件夹中,然后以正确的方式获取它。File("....") 用于设备路径中的文件。

开始吧。

您需要将文件移动到资源/原始文件夹,创建此文件夹只需右键单击 res 文件夹,选择新建 > 目录,然后工作室将打开一个对话框,它会要求您输入名称。

在此处输入图像描述

并写下“raw”并单击“确定”。打开 res 文件夹,你会在它下面找到你的 raw 文件夹。

在此处输入图像描述

然后,您可以将 .txt、.mp3 等文件放在此文件夹中,并使用此代码或类似代码获取文件。

InputStreamReader inputStream = new InputStreamReader(getResources().openRawResource(R.raw.calendario))
BufferedReader reader = new BufferedReader();
String line = reader.readLine();
while (line != null) { ... }
于 2020-03-13T16:53:39.453 回答