如何调用另一个类“写文件”的方法?

问题描述 投票:-1回答:1

在我的Android应用程序,我想有一类处理所有“写入/读取到文本文件”的行动。所以,我根本就调用我的readUserFile.java文件我想的方法。但我的方法将不会在该文件中工作?

创建一个文件在我的MainActivity工作正常,但不会在我的readUserFile类工作。我试图让我的create()方法静态的,而是比openFileOutput将无法正常工作。我也试图让readUserFile自身的静态对象,然后调用从另一种方法创建方法,但没有奏效。 Mabye它有上下文事可做,我不依赖明白吗?

public class readUserFile extends Application {

String filename = "users.txt";
boolean exist = false;

public void create(){
    File users = new File(getApplicationContext().getFilesDir(),filename);
    if(!users.exists()){
        String fileContents = "Admin=Admin=99999";
        FileOutputStream outputStream;
        try {
            outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
            outputStream.write(fileContents.getBytes());
            outputStream.close();
            exist = true;
        } catch (Exception e) {
            e.printStackTrace();
            exist = false;
        }
    }
}

public class MainActivity extends AppCompatActivity {

readUserFile userFile = new readUserFile();

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

    for(int i = 0; i<3; i++){

    if(userFile.exist == true){
        Toast.makeText(this, "!!!FILE EXISTS!!!", Toast.LENGTH_SHORT).show();
    }
    else{
        userFile.create();
        Toast.makeText(this, "File Created "+ i + " "+ userFile.exist, Toast.LENGTH_SHORT).show();
        }
    }
}

我希望它不会那么血腥硬,而不是应用,只要我启动它崩溃。

java android
1个回答
0
投票

你是不正确调用.exist。使用户私有的类并创建readUserFile一种新方法,它返回的文件:

public File getFile()
{
    return users;
}

然后在MainActivity你的if语句应该是:

if(userFile.getFile().exists() == true){
    Toast.makeText(this, "!!!FILE EXISTS!!!", Toast.LENGTH_SHORT).show();
}
else{
    userFile.create();
    Toast.makeText(this, "File Created "+ i + " "+ userFile.getFile().exists(), Toast.LENGTH_SHORT).show();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.