gpt4 book ai didi

java - 没有通过 FileInputStream 获取文件?

转载 作者:太空宇宙 更新时间:2023-11-03 10:44:06 28 4
gpt4 key购买 nike

我正在尝试检查文件位置,以免它被覆盖。为此,我必须使用 FileInputStream,因为它有一个可以与 FileChannel 一起使用的方法 position()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: open failed: ENOENT (No such file or directory)

这个错误意味着它没有从某个位置获取文件,因为那里不存在文件,如果我使用 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: open failed: ENOENT (No such file or directory)

希望得到您的建议。谢谢。

最佳答案

尝试以下代码。

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath() + File.separator
+ "/imotax");
dir.mkdirs();
File f= new File(dir, fileToCreate);
if(!f.exists()){
f.createNewFile();
}

fis = new FileInputStream(f);

关于java - 没有通过 FileInputStream 获取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837330/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com