这是我的代码示例.代码很长,只是为了测试文件是否为空,然后如果不是,则写入它.无论哪种方式,该行都if (!(data.equals("")) && !(data.equals(null)))不起作用,即使文件为空,它仍然会通过警报.
FileInputStream fIn = null;String data = null;InputStreamReader isr = null;
try{
char[] inputBuffer = new char[1024];
fIn = openFileInput("test.txt");
isr = new InputStreamReader(fIn);
isr.read(inputBuffer);
data = new String(inputBuffer);
isr.close();
fIn.close();
}catch(IOException e){}
// this is the check for if the data inputted from the file is NOT blank
if (!(data.equals("")) && !(data.equals(null)))
{
AlertDialog.Builder builder = new AlertDialog.Builder(Main.this);
builder.setMessage("Clear your file?" + '\n' + "This cannot be undone.")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
EditText we = (EditText)findViewById(R.id.txtWrite);
FileOutputStream fOut = null;
OutputStreamWriter osw = null;
try{
fOut = openFileOutput("test.txt", Context.MODE_PRIVATE);
osw = new OutputStreamWriter(fOut);
osw.write("");
osw.close();
fOut.close();
we.setText("");
}catch(Exception e){}
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
Run Code Online (Sandbox Code Playgroud)
此外,如果有人有办法缩短这段代码,我会很高兴!
Jon*_*oni 11
如果文件为空(没有内容),则其长度为0.如果文件不存在,则返回0; 如果这是必要的区别,您可以检查文件是否与exists方法一起存在.
File f = getFileStreamPath("test.txt");
if (f.length() == 0) {
// empty or doesn't exist
} else {
// exists and is not empty
}
Run Code Online (Sandbox Code Playgroud)
当前的方法无法工作,因为inputBuffer是一个包含1024个字符的数组,并且从中创建的字符串也将具有1024个字符,与从文件中成功读取的字符数无关.
| 归档时间: |
|
| 查看次数: |
8711 次 |
| 最近记录: |