@bychok300

Как проверить есть ли файл?

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

вот код
public class MainActivity extends Activity {
    // init variables
    EditText pass;
    Button login;
    String password;

    final String LOG_TAG = "myLogs";

    private String mFileName = "myfile";

    //init onCreate method that provide our logic when activity start open
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        pass = (EditText) findViewById(R.id.pass);
        login = (Button) findViewById(R.id.button);



        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                password = pass.getText().toString().trim();

                    if (TextUtils.isEmpty(password)) {

                        pass.setError("password mustnot be empty");
                        pass.focusSearch(View.FOCUS_DOWN);

                    } else if (password.length() >= 6 && password.length() <= 24) {

                        Toast.makeText(getApplicationContext(), "validation sucess", Toast.LENGTH_LONG).show();
                        writeToFile(v);

                        Intent intent = new Intent(MainActivity.this, new_activity.class);
                        startActivity(intent);


                    } else {
                        pass.setError("password length must be match:5=<password>=10");
                        pass.focusSearch(View.FOCUS_DOWN);
                    }


              }
        });

    }

    public void readFile(View v) {

        Log.d(LOG_TAG, "readFile");

        FileInputStream stream = null;
        StringBuilder sb = new StringBuilder();
        String line;

        try {
            stream = openFileInput(mFileName);

            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
                while ((line = reader.readLine()) != null) {
                    sb.append(line);
                }
            } finally {
                stream.close();
            }

            Log.d(LOG_TAG, "Data from file: " + sb.toString());
            Toast.makeText(getApplicationContext(), "file Created", Toast.LENGTH_LONG).show();
        } catch (Exception e) {
            Log.d(LOG_TAG, "Файла нет или произошла ошибка при чтении");
        }
    }

    public void writeToFile(View v) {

        Log.d(LOG_TAG, "writeToFile");

        String string = password;

        try {
            FileOutputStream outputStream = openFileOutput(mFileName, MODE_PRIVATE);
            outputStream.write(string.getBytes());
            outputStream.close();

        } catch (Exception e) {
            Log.d(LOG_TAG, "Произошла ошибка при записи");
        }
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}


типо надо сделать так
if (filename.exist()){
    readFromFile()
}else{error}

но не понимаю куда это нужно сделать
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ответы на вопрос 2
@aol-nnov
тяжелые операции в гуи треде?? нет пути!!1
Ответ написан
@davidnum95
Жесть какая то у вас в коде
File file = new File(mFileName);
if (file.exist()){
    readFromFile()
}else{error}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы