黑马程序员——IO流(1)
来源:互联网 发布:淘宝代销好吗 编辑:程序博客网 时间:2024/04/29 23:14
流的概念和作用:
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
Java IO流类图结构:
从上图可以看到,根据处理的数据类型的不同,分为字符流和字节流。字符流的本质是基于字节流,根据指定的码表可以对字符进行高效的流操作。字节流和字符流的区别:
(1)读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
(2)处理对象不同:字节流处理所有类型的数据(如图片、视频等),而字符流只能处理字符类型的数据。
结论:只有是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。
字符流:
向硬盘写入数据:
import java.io.*;public class IO_test1 {public static void main(String[] args) {FileWriter fw=null;try {//构造函数public FileWriter(String fileName, boolean append) //append - 一个 boolean 值,如果为 true,则将数据写入文件末尾处,而不是写入文件开始处。 即文件的续写fw=new FileWriter("c:\\test.txt",true);fw.write("abcdefg");//flush()刷新流fw.flush();//续写fw.write("hello!");fw.flush();} catch (IOException e) {e.printStackTrace();}finally{//close()关闭流,并刷新,即flushtry {if(fw!=null)fw.close();} catch (IOException e) {e.printStackTrace();}}}}
向硬盘读取数据:
import java.io.*;public class IO_test2 {public static void main(String[] args) {try {FileReader fr=new FileReader("c:\\test.txt");//读取单个字符,直到末尾//readOne(fr);//一次全部读取字符readOnce(fr);} catch (FileNotFoundException e) {e.printStackTrace();}}public static void readOne(FileReader fr){try {int ch=0;while((ch=fr.read())!=-1){System.out.print((char)ch);}} catch (IOException e) {e.printStackTrace();}}public static void readOnce(FileReader fr){//数组存储字符。因为知道文件大小,所以此处定义成了固定数组char[] buff=new char[1024];int num=0;try {while((num=fr.read(buff))!=-1){//将字符数组转成字符串输出System.out.println(new String(buff,0,num));}} catch (IOException e) {e.printStackTrace();}}}字符流文件的复制:
import java.io.*;public class IO_test3 {public static void main(String[] args) {FileWriter fw=null;FileReader fr=null;try {fr=new FileReader("c:\\test.txt");fw=new FileWriter("d:\\test1.txt");char[] buff=new char[100];int len=0;while((len=fr.read(buff))!=-1){fw.write(buff, 0, len);}} catch (IOException e) {throw new RuntimeException("失败");} finally{if(fw!=null)try {fw.close();} catch (IOException e) {e.printStackTrace();}if(fr!=null)try {fr.close();} catch (IOException e) {e.printStackTrace();}}}}其实,文件的复制就是一边读一边写,从上边的代码中就可以看出。
0 0
- 黑马程序员——IO流1
- 黑马程序员—IO流1
- 黑马程序员—IO流1
- 黑马程序员—IO流(1)
- 黑马程序员——IO(1)
- 黑马程序员—io流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员 — IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO操作(1)
- 黑马程序员————IO流(1)
- 黑马程序员——iO流(1)
- 黑马程序员——IO流(1)
- 2PL - 两阶段锁
- 富士通南大笔试(2014.10.12)
- 百度云 下载失效链接
- 创建单链表
- JAVA -cp option
- 黑马程序员——IO流(1)
- 我使用过的Linux命令之ifconfig - 网络配置命令
- Foundation框架之NSString
- Android_VIEW
- printf调用导致valgrind产生kill信号
- AVL树
- K_means
- LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Oracle 12577 TNS 适配器不可加载