A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐磊TL 初级黑马   /  2018-12-26 15:03  /  882 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流
Io流:
I:input 输入(读取)
O:output 输出(写入)
流:数据(字符,字节)一个字符=2个字节 1个字节=8个二进制位
1.输入:把硬盘中的数据,读取到内存中使用
2.输出:把内存中的数据,写入到硬盘中保存

1.字节流:输入:inputstream   输出:outputstream
2.字符流:输入:reader  输出:writer

一切皆为字节

字节输出流的使用步骤
1.创建一个fileoutputstream对象,构造方法中传递写入数据的目的地
2.调用fileoutputstream对象中的方法write,把数据写入到文件中
3.释放资源

Fileoutputstream f=new fileoutputstream(路径)(可以创建一个文件,不能创建文件夹)
F.write(字节数据);
F.close();//释放资源
写数据时,会把十进制的整数转换为二进制整数97;
任意的文本编译器(记事本,notepad++。。)再打开文件的时候,都会查询编码表

一次写多个字节的方法:
创建fileoutputstream对象
Fileoutputstream f=new fileoutputstream(路径)(new file(绑定写入路径))
调用对象方法write,把数据写到文件中
写入100;
Byte[]bytes={49,48,48}
f.write(bytes)

一次写多个字节:
如果第一个字节是正数(0-127),那么显示时会查询ascii表;
如果写的第一个为负数,那么第一个字节和第二个字节,两个字节组成一个中文显示;查询gbk表;

Write(byte[] b,int off,int len):把数组的一部分写入到文件中
Int off:数组的开始索引
Int len:写几个字节
f.write(bytes,1,2)

写入字符串的方法:
Byte[]getbytes()把字符串转换为字节数组
Byte[] bytes2=“你好”.getbytes();

数据的追加写和换行写
追加写(续写):
Fileoutputstream f=new fileoutputstream(路径,true)true(追加写的开关)
f.write(“你好”.getbytes());

换行写:“\r\n”


字节输入流:inputstream(所有字节输入流的超类)
Read();读取字节

Fileinputstream:文件字节输入流
把硬盘中的数据传入到内存中使用


字节输入流的使用步骤:
1.创建对象,构造方法中绑定数据
2适用对象中的read方法,读取文件
3.释放资源

Fileinputstream f=new fileinputstream(“路径”)
f.read();返回-1读取完毕

While循环,结束条件为-1
布尔表达式(len=f.read())!=-1
1.f.read(读取一个字节)
2.Len=f.read();把读取到的字节赋值给变量len
3.(len=f.read())!=-1:判断变量len是否等于-1

字节输入流一次读取多个字节的方法
明确两件事:
1.方法的参数byte[]的作用
起到缓冲作用,存储每次读取到的多个字节
数组长度一般定义为1024(1kb)或1024的整数倍
2.方法返回值int是什么
每次读取的有效字节个数

byte[] bytes = new byte[1024];//存储读取到的多个字节
        int len = 0; //记录每次读取的有效字节个数
        while((len = fis.read(bytes))!=-1){
                      System.out.println(new String(bytes,0,len));//打印输出有效的
        }

文件复制练习:一读一写
文件复制的步骤:
        1.创建一个字节输入流对象,构造方法中绑定要读取的数据源
        2.创建一个字节输出流对象,构造方法中绑定要写入的目的地
        3.使用字节输入流对象中的方法read读取文件
        4.使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
        5.释放资源(先关写的,后关闭读的;如果写完了,肯定读取完毕了)


字符流(可以用来读取含中文内容的)
字符输入流:
Reader是字符输入流最顶层的父类(抽象类)

子类(Filereader)
作用:把硬盘中的文件以字符的形式读取到内存中
字符输入流使用步骤(与字节流相同)

字符输出流(输出流都有flush方法,输入流没有)
Writer字符输出流最顶层类,是一个抽象类
Filewriter(子类)文件字符输出流
作用:把内存中的字符数据写入到硬盘中
字符输出流的使用步骤:
与字节输出流相同(调用flush方法,把内存缓冲区的数据刷新到文件中);可以直接输出字符串。

flush方法和close方法的区别
        - flush :刷新缓冲区,流对象可以继续使用。
        - close:  先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。







Properties集合
继承了hashtable集合,是想了map借口
用的比较多,唯一一个可以读写数据的集合
可以使用properties集合中的方法store,把集合中的临时数据,齿芥花写入到硬盘中存储
可以使用load方法,把硬盘中保存的文件,读取到集合中使用。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马