inputStream和fileOutputStream的疑问
老师,我没用过这两者,所以对于本节有点疑惑,想问问老师。谢谢!
我的理解是上传上来的文件放在内存里,然后要存放在磁盘里就需要读出来 然后写在指定目录或者文件。读的话用inputStream,读完之后用fileOutputStream来写到指定文件outFile。具体的方法是用IOUtils.copy来实现。不知道我理解的有没有问题?
此外还有几个小疑问。
1 是不是用完inputStream/fileInputStream和outputStream/fileOutputStream都要close来释放系统资源呢?
2 如果是的话,为什么inputStream close()这里注释写着这个方法一点用也没有?
* <p> The <code>close</code> method of <code>InputStream</code> does nothing.
3 为什么我们fileOutputStream close之前要用flush呢?我看到网上的解释说FileOutputStream不需要用flush
The method flush is used to "flush" bytes retained in a buffer. FileOutputStream doesn't use any buffer, so flush method is empty. Calling it or not doesn't change the result of your code.
4 这里判断为什么是!=null呢?我打印了一下
outFile.getParentFile().mkdirs();
前后都是一个路径的string啊,不是很理解。
if (outFile.getParentFile() != null) {
// 创建文件夹
outFile.getParentFile().mkdirs();
}
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星