java IO学习总结
一、概念引入:
1、流
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
2、IO:
输入就是input,输出是output,输入和输出就是某个方向流动的数据流。
Java对数据的操作是通过流的方式。输入和输出是相对于内存而言,将外设中的数据读取到内存中就是输入 ,将内存的数据写入到外设中就是输出。
3、分类:
流按操作数据分为两种:字节流和字符流。
流按流向分为:输入流和输出流。
4、字符流的由来:
字节流读取指定文字字节数据后,不直接操作,而是先查指定的编码表。获取对应的文字。
再对文字进行操作。
5、java IO流类图结构:

二、开发实战
1、流操作的基本规律:
想要知道开发时用到哪些对象,通过四个明确即可确定。
明确一:明确目的和源
源:InputStream、Reader
目的:OutputStream、Writer
明确二:明确数据是否是纯文本
源:是纯文本:Reader。不是:InputStream
目的:是纯文本Writer。不是:OutputStream
明确三:明确具体的设备
源设备:
硬盘:File
键盘:System.in
内存:数组
网络:Socket流
目的设备:
硬盘:File
键盘:System.out
内存:数组
网络:Socket流
明确四:是否需要其他功能。
是否需要高效:是,加上Buffer
是否需要对象序列化:ObjectInputStream
是否需要操作基本数据类型:DateInputStream,DateOutputStream
File类:用来将文件或者文件夹封装成对象。
方便对文件或文件夹的属性进行操作。
构造函数:File.separator
2、File对象常见方法:
1.获取:
1.1获取文件名称。
String getName();
1.2获取文件路径.
StringgetPath();
StringgetAbsolutePath();
1.3获取文件大小.
long length();
1.4获取文件修改时间。(判断修改时间,来加载修改后的新文件。)
longlastModified();
2.创建和删除。
booleancreateNewFile();//文件不存在就创建,文件存在不创建。 booleandelete(); deleteOnExit();//在退出时删除。 File dir = new File("abc\\d\\e");//注意:File对象封装的是e文件夹。 boolean b = dir.mkdir(); boolean b = dir.mkdir();//创建多级目录 boolean b1 = dir.delete();//必须要由内向外删,目录里有内容删除不掉。
3.判断文件是否存在。
booleanexists(); booleanisDirectory();//应该先判断是否存在,不存在返回flase boolean isFile();
4.重命名。
File f1 = new File("c:\\0.txt"); File f2 = new File("d:\\1.txt"); f1.renamenTo(f2);//剪切文件到d盘,并改名为1.txt。
5.获取系统根目录和容量
获取所有盘符:
File[] files = File.listRoots(); for(File file : files){ System.out.println(file); } getFreeSpace(); getTotalSpace();
6.获取目录内容。
File file = new File("c:\\"); String[] names = file.list(); for(String name : names){ System.out.println(name); }
7.过滤器。
File dir = new File("c:\\"); String[] names = dir.list(new FilterByJava()); for(String name: names){ System.out.println(name); }
三、小结
IO操作在开发中非常常见,由于需要操作本地文件,因此会发生许多问题,也即抛出大量的异常:
最常见的如:FileNotFoundException这是IOException的一个子类,同时也会抛出许多别的IO异常,在开发过程中我们必须对这些异常
进行分别的处理,以提高程序的健壮性。
最重要的一点,不论操作什么流对象,在操作完毕后,都必须关闭资源。通常都会把关闭资源的代码放进finally语句块中。
posted on 2013-01-28 00:51 Xiaobin.Wang 阅读(205) 评论(0) 收藏 举报
浙公网安备 33010602011771号