Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我正在制作一个简单的待办事项列表应用程序。我可以将数据保存到文件中,但当我关闭应用程序并重新打开时,我丢失了数据_Android - Fatal编程技术网

Android 我正在制作一个简单的待办事项列表应用程序。我可以将数据保存到文件中,但当我关闭应用程序并重新打开时,我丢失了数据

Android 我正在制作一个简单的待办事项列表应用程序。我可以将数据保存到文件中,但当我关闭应用程序并重新打开时,我丢失了数据,android,Android,我正在制作一个简单的待办事项列表应用程序。我可以将数据保存到文件中,但当我关闭应用程序并重新打开时,我丢失了数据。我正在将数据存储在文件中,当应用程序关闭并重新打开时,我无法检索数据 public class MainActivity extends AppCompatActivity { EditText toDo; ListView listView; Button addButton; ArrayList<String> item; Ar

我正在制作一个简单的待办事项列表应用程序。我可以将数据保存到文件中,但当我关闭应用程序并重新打开时,我丢失了数据。我正在将数据存储在文件中,当应用程序关闭并重新打开时,我无法检索数据

public class MainActivity extends AppCompatActivity {
    EditText toDo;
    ListView listView;
    Button addButton;
    ArrayList<String> item;
    ArrayAdapter<String> arrayAdapter;

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

        toDo = (EditText) findViewById(R.id.editText);
        addButton = (Button) findViewById(R.id.addButton);
        listView = (ListView) findViewById(R.id.listView);
        item = new ArrayList<String>();
        arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, item);
        listView.setAdapter(arrayAdapter);
        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String result = toDo.getText().toString();
                arrayAdapter.add(result);
                toDo.setText(" ");
                writeItems();
            }
        });
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                item.remove(position);
                arrayAdapter.notifyDataSetChanged();
                writeItems();
                return true;
            }
        });
    }

    private void readItems() {
        File filesDir = getFilesDir();
        File todoFile = new File(filesDir, "todo.txt");
        int read = -1;

        try {

            FileInputStream inputStream = new FileInputStream(todoFile);
            while ((read = inputStream.read()) != -1) {
                //arrayAdapter.add(String.valueOf((char)read));
                Log.d("TAG", " " + read);
            }
            item = new ArrayList<String>(FileUtils.readLines(todoFile));
        } catch (IOException e) {
            item = new ArrayList<String>();
        }
    }

    private void writeItems() {
        File filesDir = getFilesDir();
        File todoFile = new File(filesDir, "todo.txt");
        try {`enter code here`
            FileUtils.writeLines(todoFile, item);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在writeItems方法中

File todoFile = new File(filesDir, "todo.txt");
FileUtils.writeLines(todoFile, item);
创建新文件或通过删除所有内容覆盖现有文件


您应该使用FileWriter类,它为您提供了在现有文件中追加数据的选项

请尝试以下代码,它使用FileWriter类

try{
        String line = "your string content";

        File file =new File("todo-list.txt");

        //if file doesnt exists, then create it
        if(!file.exists()){
            file.createNewFile();
        }

        //true = append file
        FileWriter fileWritter = new FileWriter(file.getName(),true);
            BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
            bufferWritter.write(line);
            bufferWritter.close();

        System.out.println("Done");

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

代码来自此网站。

当我关闭应用程序并重新打开时,它仍不能像sson一样工作。我看不到mt DATAOOHKK。。刚才看到。。。。。在readitems方法中,使用bufferedreader读取文件。。通过使用其readline方法