在我的Android应用程序中,我希望有一个类可以处理所有“写入/读取到文本文件”操作。因此,我只需在readUserFile.java文件中调用所需的方法即可。但是我的方法在该文件中不起作用?
创建一个文件在我的MainActivity工作正常,但不会在我的readUserFile类的工作。我试图使我的create()方法成为静态方法,但是openFileOutput将无法正常工作。我还尝试将readUserFile本身设置为静态对象,然后从另一个方法调用create方法,但是没有用。 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();
}
}
}
我希望它不会那么血腥硬,而不是应用,只要我启动它崩溃。
答案 0 :(得分: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();
}
}