java中文件打开和关闭的问题

编译完运行程序,文件被打开进行了一些操作后,代码中没有编写关闭文件的语句。那么当程序结束退出后,这个文件是否自动被关闭?还是依然保持着打开状态??... 编译完运行程序,文件被打开进行了一些操作后,代码中没有编写关闭文件的语句。那么当程序结束退出后,这个文件是否自动被关闭?还是依然保持着打开状态?? 展开
 我来答
waveletzh
2012-11-10 · TA获得超过1460个赞
知道答主
回答量:75
采纳率:0%
帮助的人:66万
展开全部
JVM退出时会释放所有文件的句柄,这个文件当然是被自动关闭了;如果你在写入文件后,没有及时调用flush(),写入的内容不会刷入磁盘,就丢失了.
百度网友e36e129
2012-11-10 · TA获得超过162个赞
知道答主
回答量:61
采纳率:0%
帮助的人:63.1万
展开全部
根据我的编程经验,也会遇到文件忘记close的情况,我来说一下我在这种情况下发生了什么问题。我打开一个文件,往里面写东西,如果忘了关闭,在buffer中的内容不会写到文件里面去,也就是有时候明明已经写入内容了,当你打开文件看了下发现会少掉了一部分。而如果在程序推出前close了文件流,则不会发生这种情况。所以文件用完了无论是读写都要养成关闭的好习惯,希望我的回答能够帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
推荐于2017-09-18 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1730万
展开全部
可以通过BufferedReader 流的形式进行文件流的大卡,之后通过readLine方法获取到流的内容,之后通过close方法关闭流(关闭文件流)。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ligq870715
2012-11-10
知道答主
回答量:1
采纳率:0%
帮助的人:1564
展开全部
自己搞个测试就行了,有没被释放,删除一下文件,删不了就没被释放嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式