java学习笔记(11)
2014-05-17 09:31
183 查看
写一个javaTest程序,列出所有目录下的*.java文件,把子目录下的JAVA文件也打印出来。
使用I/O流访问file中的内容。
JVM与外界通过数据通道进行数据交换。 分类:
按流分为输入流和输出流;
按传输单位分为字节流和字符流; 还可以分为节点流和过滤流。
节点流:负责数据源和程序之间建立连接; 过滤流:用于给节点增加功能。
过滤流的构造方式是以其他流位参数构造(这样的设计模式称为装饰模式)。
字节输入流:io包中的InputStream为所有字节输入流的父类。 Int read();读入一个字节(每次一个);
可先使用new byte[]=数组,调用read(byte[] b)
read (byte[])返回值可以表示有效数;read (byte[])返回值为-1表示结束。
字节输出流:io包中的OutputStream位所有字节输入流的父类。 Write和输入流中的read相对应。
在流中close()方法由程序员控制。因为输入输出流已经超越了VM的边界,所以有时可能无法回收资源。 原则:凡是跨出虚拟机边界的资源都要求程序员自己关闭,不要指望垃圾回收。 以Stream结尾的类都是字节流。
如果构造FileOutputStream的同时磁盘会建立一个文件。如果创建的文件与磁盘上已有的文件名重名,就会发生覆盖。
用FileOutputStream中的boolean,则视,添加情况,将数据覆盖重名文件还是将输入内容放在文件的后面。(编写程序验证)
DataOutputStream:输入数据的类型。
因为每中数据类型的不同,所以可能会输出错误。 所有对于:DataOutputStream DataInputStream
两者的输入顺序必须一致。 过滤流:
bufferedOutputStream bufferedInputStream
用于给节点流增加一个缓冲的功能。
在VM的内部建立一个缓冲区,数据先写入缓冲区,等到缓冲区的数据满了之后再一次性写出,效率很高。
使用带缓冲区的输入输出流的速度会大幅提高,缓冲区越大,效率越高。(这是典型的牺牲空间换时间) 切记:使用带缓冲区的流,如果数据数据输入完毕,使用flush方法将缓冲区中的内容一次性写入到外部数据源。用close()也可以达到相同的效果,因为每次close都会使用flush。一定要注意关闭外部的过滤流。
(非重点)管道流:也是一种节点流,用于给两个线程交换数据。 PipedOutputStream PipedInputStream 输出流:connect(输入流)
RondomAccessFile类允许随机访问文件
GetFilepoint()可以知道文件中的指针位置,使用seek()定位。 Mode(“r”:随机读;”w”:随机写;”rw”:随机读写) 练习:写一个类A,JAVA A file1 file2
file1要求是系统中已经存在的文件。File2是还没有存在的文件。 执行完这个命令,那么file2就是file1中的内容。
字符流:reader\write只能输纯文本文件。 FileReader类:字符文件的输出
字节流与字符流的区别: 字节流的字符编码:
字符编码把字符转换成数字存储到计算机中,按ASCii将字母映射为整数。 把数字从计算机转换成相应的字符的过程称为解码。 编码方式的分类:
ASCII(数字、英文):1个字符占一个字节(所有的编码集都兼容ASCII) ISO8859-1(欧洲):1个字符占一个字节 GB-2312/GBK:1个字符占两个字节
Unicode: 1个字符占两个字节(网络传输速度慢)
UTF-8:变长字节,对于英文一个字节,对于汉字两个或三个字节。
原则:保证编解码方式的统一,才能不至于出现错误。
Io包的InputStreamread称为从字节流到字符流的桥转换类。这个类可以设定字符转换方式。 OutputStreamred:字符到字节
Bufferread有readline()使得字符输入更加方便。 在I/O流中,所有输入方法都是阻塞方法。
Bufferwrite给输出字符加缓冲,因为它的方法很少,所以使用父类printwrite,它可以使用字节流对象,而且方法很多。
使用I/O流访问file中的内容。
JVM与外界通过数据通道进行数据交换。 分类:
按流分为输入流和输出流;
按传输单位分为字节流和字符流; 还可以分为节点流和过滤流。
节点流:负责数据源和程序之间建立连接; 过滤流:用于给节点增加功能。
过滤流的构造方式是以其他流位参数构造(这样的设计模式称为装饰模式)。
字节输入流:io包中的InputStream为所有字节输入流的父类。 Int read();读入一个字节(每次一个);
可先使用new byte[]=数组,调用read(byte[] b)
read (byte[])返回值可以表示有效数;read (byte[])返回值为-1表示结束。
字节输出流:io包中的OutputStream位所有字节输入流的父类。 Write和输入流中的read相对应。
在流中close()方法由程序员控制。因为输入输出流已经超越了VM的边界,所以有时可能无法回收资源。 原则:凡是跨出虚拟机边界的资源都要求程序员自己关闭,不要指望垃圾回收。 以Stream结尾的类都是字节流。
如果构造FileOutputStream的同时磁盘会建立一个文件。如果创建的文件与磁盘上已有的文件名重名,就会发生覆盖。
用FileOutputStream中的boolean,则视,添加情况,将数据覆盖重名文件还是将输入内容放在文件的后面。(编写程序验证)
DataOutputStream:输入数据的类型。
因为每中数据类型的不同,所以可能会输出错误。 所有对于:DataOutputStream DataInputStream
两者的输入顺序必须一致。 过滤流:
bufferedOutputStream bufferedInputStream
用于给节点流增加一个缓冲的功能。
在VM的内部建立一个缓冲区,数据先写入缓冲区,等到缓冲区的数据满了之后再一次性写出,效率很高。
使用带缓冲区的输入输出流的速度会大幅提高,缓冲区越大,效率越高。(这是典型的牺牲空间换时间) 切记:使用带缓冲区的流,如果数据数据输入完毕,使用flush方法将缓冲区中的内容一次性写入到外部数据源。用close()也可以达到相同的效果,因为每次close都会使用flush。一定要注意关闭外部的过滤流。
(非重点)管道流:也是一种节点流,用于给两个线程交换数据。 PipedOutputStream PipedInputStream 输出流:connect(输入流)
RondomAccessFile类允许随机访问文件
GetFilepoint()可以知道文件中的指针位置,使用seek()定位。 Mode(“r”:随机读;”w”:随机写;”rw”:随机读写) 练习:写一个类A,JAVA A file1 file2
file1要求是系统中已经存在的文件。File2是还没有存在的文件。 执行完这个命令,那么file2就是file1中的内容。
字符流:reader\write只能输纯文本文件。 FileReader类:字符文件的输出
字节流与字符流的区别: 字节流的字符编码:
字符编码把字符转换成数字存储到计算机中,按ASCii将字母映射为整数。 把数字从计算机转换成相应的字符的过程称为解码。 编码方式的分类:
ASCII(数字、英文):1个字符占一个字节(所有的编码集都兼容ASCII) ISO8859-1(欧洲):1个字符占一个字节 GB-2312/GBK:1个字符占两个字节
Unicode: 1个字符占两个字节(网络传输速度慢)
UTF-8:变长字节,对于英文一个字节,对于汉字两个或三个字节。
原则:保证编解码方式的统一,才能不至于出现错误。
Io包的InputStreamread称为从字节流到字符流的桥转换类。这个类可以设定字符转换方式。 OutputStreamred:字符到字节
Bufferread有readline()使得字符输入更加方便。 在I/O流中,所有输入方法都是阻塞方法。
Bufferwrite给输出字符加缓冲,因为它的方法很少,所以使用父类printwrite,它可以使用字节流对象,而且方法很多。
相关文章推荐
- 09 11 30 Java学习笔记
- Java学习笔记12:求s=1+11+111+1111+......+1111......1的值
- 【Java学习笔记】基础知识学习11【集合和列表类】
- 黑马程序员——Java学习笔记之11——“Collection集合”总结
- 黑马程序员_JAVA 学习笔记24 WEB篇11
- Effective Java 学习笔记 (11)
- java学习笔记11--Annotation
- 黑马程序员—11—java基础:有关线程通信的学习笔记和学习心得体会
- Java学习笔记11 —— 向方法和构造函数传递信息
- JAVA学习笔记(11)
- Java学习笔记---11.面向对象编程06-Java的内部类及对象数组
- java学习笔记11--Annotation
- Java学习笔记11——数据库编程
- java网络编程 tcp 黑马程序员学习笔记(11)
- Java学习笔记11
- java 设计模式 学习笔记(11) 建造者模式
- java学习笔记11 - 使用forward实现API接口转发
- 上下载结合iOS学习笔记11-UITabBarController和UInavigationController的结合demoStrut2教程-java教程
- 黑马程序员 Java基础学习笔记11 异常
- 黑马程序员_JAVA学习笔记11