我正在尝试检查文件位置,以免被覆盖。为此,我必须使用它,FileInputStream
因为它有一个position()
可以与FileChannel
. BufferedReader
不保持立场。
我的代码是:
FileChannel fc = null;
FileInputStream fis = null;
int i=0;
long pos;
char c;
fis = new FileInputStream("File.txt");
while((i=fis.read())!=-1)
{
fc = fis.getChannel();
pos = fc.position();
c = (char)i;
System.out.print("No of bytes read: "+pos);
System.out.println("; Char read: "+c);
}
我得到java.io.FileNotFoundException
:
/doneQuestionDetail.txt:打开失败:ENOENT(没有这样的文件或目录)
这个错误意味着它没有从位置获取文件,因为文件不存在那里,如果我使用BufferedReader
:
BufferedReader inputReader = new BufferedReader(
new InputStreamReader(openFileInput("File.txt")));
它在这一行中没有给出任何错误,这意味着文件存在并且FileInputStream
没有获取文件。
搜索后,我必须先获取位置,然后将其提供给FileInputStream
,然后我将代码更改为:
String extr = Environment.getExternalStorageDirectory().toString();
File mFolder = new File(extr + "/imotax");
String s = "doneQuestionDetail.txt";
File f = new File(mFolder.getAbsolutePath(), s);
fis = new FileInputStream(f);
现在我收到一个错误:
java.io.FileNotFoundException:/mnt/sdcard/imotax/File.txt:打开失败:ENOENT(没有这样的文件或目录)
希望得到您的建议。谢谢。