刚刚那个FileOutputStream问题

试了试,确实是这样子.但是有没有什么能证明的,API中我没找到如果文件不存在就创建的语句啊~谢谢... 试了试,确实是这样子.但是有没有什么能证明的,API中我没找到如果文件不存在就创建的语句啊~谢谢 展开
 我来答
zh857872
2015-06-16 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:306万
展开全部
楼主,感谢你的救助。
Java API中是这样描述的:
public FileOutputStream(File file)
throws FileNotFoundException
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。创建一个新
FileDescriptor 对象来表示此文件连接。
首先,如果有安全管理器,则用 file 参数表示的路径作为参数来调用 checkWrite 方法。如果该文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开,则抛出
FileNotFoundException。

上面已经说的很清楚了,“最后的或者该文件不存在,但无法创建它”,这句话已经明确表明了,当文件不存在时,程序首先会帮你创建文件,如果不能创建,则抛出异常,现在明白了吧。

有问题欢迎继续提问,满意请采纳,谢谢哈!
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2374fe58
2015-06-16 · TA获得超过808个赞
知道小有建树答主
回答量:420
采纳率:100%
帮助的人:197万
展开全部
API里有的,public FileOutputStream(File file,boolean append) throws FileNotFoundException

参数:
file - 为了进行写入而打开的文件。
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处

就因为有这个append,如果文件已经存在就不会重新创建文件,而是写入到文件末尾
(PS:纯手打,望采纳!!!)
追问
谢谢!对,如果传的文件存在,append为ture会接着文件末尾写,为false会从文件开头写.
但是我现在这个文件不存在,第二个参数默认为false,也只是说明从文件开头写,但是这个文件不存在,那从哪里开头写呢,这个API里面并没有创建文件的语句呀
追答

这仅仅只是一个字节流好不好,哪里说了是创建文件的,创建文件是要用File这个类的。来给你看个我前段时间用到的例子:

fferedReader reader;
BufferedWriter writer;
 
//reader = new BufferedReader(new FileReader(new File(filedir,filename)));
reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filedir,filename)),"UTF-8"));
 
//writer = new BufferedWriter(new FileWriter(new File(filedir,emailDomain+".txt"),true));
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(filedir,emailDomain+".txt"),true),"UTF-8"));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式