FileUtils: методы readLines и writeLines не найдены - PullRequest
0 голосов
/ 05 октября 2019

Я новичок в Android Studio, поэтому я следовал инструкциям к видео, и постоянно появляется ошибка, что методы ReadLines и writeLines не существуют. Я пытался импортировать методы, но ни один из них не работал.

Я предполагаю, что эта реализация была ответственной за эти методы, и она находится в правильном расположении (файл приложения) на основе инструкций, но сообщений об ошибках нет. вокруг него.

Видео: https://www.youtube.com/watch?v=qP4U_4QvojQ&list=PLrT2tZ9JRrf6cHOlMkbmTMFt0RzpJiRGX&index=4

implementation 'commons-io:commons-io:2.6'

Вот код MainActivity.java, который использует методы

package com.example.simpletodo;

import android.os.Bundle;
import android.os.FileUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ArrayList items;

    Button btnAdd;
    EditText etItem;
    RecyclerView rvItems;
    ItemsAdapter itemsAdapter;

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

        btnAdd = findViewById(R.id.btnAdd);
        etItem = findViewById(R.id.etItem);
        rvItems = findViewById(R.id.rvItems);

        loadItems();

        ItemsAdapter.OnLongClickListener onLongClickListener = new ItemsAdapter.OnLongClickListener(){
            @Override
            public void onItemLongClicked(int position){
                //Delete the item from the model
                items.remove(position);
                //Notify the adapter
                itemsAdapter.notifyItemRemoved(position);
                Toast.makeText(getApplicationContext(), "Item is removed", Toast.LENGTH_SHORT).show();
                saveItems();
            }
        };
        itemsAdapter = new ItemsAdapter(items);
        rvItems.setAdapter(itemsAdapter);
        rvItems.setLayoutManager(new LinearLayoutManager(this));

        btnAdd.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                String todoItem = etItem.getText().toString();
                //Add item to the model
                items.add(todoItem);
                //Notify adapter that an item is inserted
                itemsAdapter.notifyItemInserted(items.size() - 1);
                etItem.setText("");
                Toast.makeText(getApplicationContext(), "Item was added", Toast.LENGTH_SHORT).show();
                saveItems();
            }
        });
    }

    private File getDatafile(){
        return new File(getFilesDir(), "data.txt");
    }

    //This function will load items by reading every line of the data file
    private void loadItems(){
        try {
            items = new ArrayList<>(FileUtils.readLines(getDatafile(), Charset.defaultCharset()));
        }
        catch (IOException e) {
            Log.e("MainActivity", "Error reading items", e);
            items = new ArrayList<>();
        }
    }

    //This function saves items by writing them into the data file
    private void saveItems(){
        try {
            FileUtils.writeLines(getDatafile(), items);
        }
        catch (IOException e){
            Log.e("MainActivitiy", "Error writing items", e);
        }
    }

}

1 Ответ

1 голос
/ 05 октября 2019

Попробуйте:

import org.apache.commons.io.FileUtils;

вместо из

import android.os.FileUtils;

Согласно документации, android.os.FileUtils не имеетreadLines() или writeLines() методы.

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