【发布时间】:2020-02-23 01:14:26
【问题描述】:
尽管将整数写入数据文件,但文件中可用的总字节数仍为 0。
public class Q
{
public static void main(String[] args) throws IOException
{
DataOutputStream output = new DataOutputStream(new FileOutputStream("count.dat"));
DataInputStream input = new DataInputStream(new FileInputStream("count.dat"));
if (input.available()==0)
{
output.writeInt(1);
}
else
{
int count = input.readInt() + 1;
System.out.println(count);
output.writeInt(count);
}
output.close();
input.close();
}
}
【问题讨论】:
-
您确定要访问该文件吗?也许显示你的文件结构,看看你是否正确调用 count.dat
-
是的,我可以访问它。代码在文件上写入整数“1”,但不会增加它。相反,它只是一次又一次地重写“1”。
-
你为什么使用
input.available() == 0?else语句将永远不会在您的示例中执行。 -
创建文件时该文件为空,并且您始终在创建它,因此您的递增代码永远不会执行。您声称该文件为空的说法是错误的。运行此代码后的大小为 4 个字节。
-
您应该使用单个
RandomAccessFile。
标签: java file-handling