我的IO漫谈
来源:互联网 发布:nba2k13捏脸详细数据 编辑:程序博客网 时间:2024/06/18 13:11
我的IO漫谈(一)
这只是一个初学者的一点一点的心得记录而已,请大家多多指教哦。。
刚接触IO(java.io包),先是在写一个简单的文件搜索器,File类就体现出它在这个小软件上的强大了,只要在它的构造方法上加上文件路径,它就可以获取文件大小file.length(),判断文件是否存在file.exists(),判断该路径下的内容是否为文件file.isFile(),判断该路径下的内容是否为文件夹file.isDirectory(),列出该文件夹下的所有文件file.listFiles(),获取文件名file.getName(),获取文件的绝对路径file.getAbsolutePath()等等。这里要注意的是一个判断某个路径时出现层层覆盖的文件夹,要用什么方法来统计文件数和文件夹数呢?这里有一段代码可以解答:
if(file.exists()){//此路径存在
if(file.isFile()){//文件
System.out.println(file.getAbsolutePath());
}else if(file.isDirectory()){//文件夹
//列出此文件夹下所有的File对象
File[] files = file.listFiles();
for(int i=0;i<files.length;i++){
File f = files[i];
//递归
printFileName(f.getAbsolutePath());
}
}
}else{
System.out.println("路径有误!");
}
后来是在写文件的复制粘贴功能,我碰到的第一个类就是FileInputSteam,随之而来的就是FileOutputStream,然后就是一次又一次的read,write。。。。然后又要想着先是FileInputStream才是FileOutputStream,为什么呢,原因就是要先将所操作的文件从外存写入内存,这个写入操作是由FileInputStream实现的,再是将得到的数据从内存输出到目标路径下,这个输出操作是由FileOutputStream实现的。说到这里,又不得不提到read()(FileInputStream)和write()(FileOutputStream)的多参数形式,方便我们能够更灵活的实现我们想要的操作。FileInputSteam的int read()和int read(byte[] b, int off, int len),FileOutputStream的write()和write(byte[] b, int off, int len),一定记住是先read再write,先用FileInputStream再用FileOutputStream。还有就是IO操作是要处理异常的,io就是要读取外部的数据,而你又无法确定知道读进来的一定是程序能正确处理的数据,所以要try catch或者throws。但是到底是用哪种,这要看你的类是干什么用的,如果是工具类 需要其他类来调用使用的话最好是throws如果是正式使用的话肯定需要try catch。
- 我的IO漫谈
- 我的IO漫谈2
- "愚乐",我的漫谈!
- 漫谈linux文件IO--io流程讲的很清楚
- 漫谈我所知道的Broadcom SDK
- 漫谈linux文件IO
- 漫谈linux文件IO
- 漫谈linux文件IO
- 漫谈linux文件IO
- Linux IO模型漫谈
- 漫谈linux文件IO
- 漫谈linux文件IO
- Linux IO漫谈
- Linux IO模型漫谈
- 漫谈linux文件IO
- 我的思考,我的科技漫谈——人工智能
- 我的java笔记(IO)
- Java IO (5) 漫谈IO实际应用
- African demand of film faced plywood increasing
- mappingResources、mappingLocations、mappingDirectoryLocations、mappingJarLocations
- 源码推荐:多图无缝滚动控件,多视图控制器间切换
- java数据引擎(五):详细使用
- 第三章第17题
- 我的IO漫谈
- 链表的基本操作
- CTLChart控件引用头文件CTLXYChart.h
- java BigDecimal
- HDU--2203(kmp,模板题)
- 我的Coursera历程
- 【转载&收藏】前端必读:浏览器内部工作原理
- JS获取当前操作系统与浏览器名称
- c++中int转换为char* 类型