北京科技网站开发,wordpress无法安装这个包,数字媒体艺术就业方向,设计师个人作品集网站IO流分类
1)按照流向分类#xff1a; 输入流#xff1a;读取数据用的 输出流#xff1a;写数据用的
2)按照读写的数据分类(体系结构) 1字节流[读写任何类型的文件(任何文件底层都是字节数据)] 字节输入流#xff1a;IntputStream(抽象类) –FileInuptStream: 读取…IO流分类
1)按照流向分类 输入流读取数据用的 输出流写数据用的
2)按照读写的数据分类(体系结构) 1字节流[读写任何类型的文件(任何文件底层都是字节数据)] 字节输入流IntputStream(抽象类) –FileInuptStream: 读取文件中的字节 –BufferedInputStream: 对InputStream进行包装提高读取数据的效率 字节输出流: OutputStream(抽象类) –FileOutputSteam: 往文件中写字节 –BufferedOutputStream: 对OutputStream进行包装提高写入数据的效率
1)普通字节流复制//创建流对象FileInputStream fis new FileInputStream(文件路径);FileOutputStream fos new FileOutputStream(文件路径);//一次读写多个字节byte[] bs new byte[1024]; //1024byte1kbint len; //记录每次读取的字节个数while((lenfis.read(bs))){//把读取到的有效字节数据写入目标文件中fos.write(bs,0,len);}//释放资源fis.close();fos.close();2)缓冲字节流复制//创建流对象BufferedInputStream bis new BufferedInputStream(new FileInputStream(文件路径));BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(文件路径));//如果是一次读一个字节,则read返回的是读取的字节//一次读写多个字节byte[] bs new byte[1024]; //1024byte1kbint len; //记录每次读取的字节个数,读取的内容存储到字节数组中while((lenbis.read(bs))!-1){//把读取到的有效字节数据写入目标文件中bos.write(bs,0,len);}//释放资源bis.close();bos.close();2字符流[只能读取文本文件(用记事本打开能读懂的就是文本文件)] 字符输入流Reader(抽象类) –FileReader: 读取文件中的字符数据 –BufferedReader: 对FileReader进行包装提高读取字符的效率 字节输出流: Writer(抽象类) –FileWriter: 往文件中写字符数据 –BufferedWriter: 对FileWriter进行包装提高写入字符的效率 1)普通字符流复制//创建流对象FileReader fr new FileReader(文件路径);FileWriter fw new FileWriter(文件路径);//一次读写多个字符char[] bs new char[1024]; //1024byte1kbint len; //记录每次读取的字节个数while((lenfr.read(bs))!-1){//把读取到的有效字节数据写入目标文件中fw.write(bs,0,len);}//释放资源fr.close();fw.close();2)字符缓冲流复制//创建流对象BuferedReader br new BufferedReader(new FileReader(文件路径));BuferedWriter bw new BuferedWriter(new FileWriter(文件路径));//一次读一行String line; //记录每次读取的那一行while((linebr.readLine())!null){//把读取到的有效字节数据写入目标文件中bw.write(line);bw.newLine(); //换行具备跨平台性bw.flush; // 刷新}//释放资源br.close();bw.close();3)字节流以及字符流的注意事项 1为什么字节流读取文本文件可能会出现乱码? 字节流一次读一个字节而不管GBK还是UTF-8一个中文都是多个字节用字节流每次只能读其中的一部分所以就会出现乱码问题。
2字符流怎么解决乱码问题 通过字符串的getBytes(“码表名”) 和 new String(byte1, “码表名”)进行编码和解码
3字符流写数据 a.创建字符输出流对象如果文件不存在就新建但是要保证父级路径的存在 如果文件存在就清空 b.写数据写出int类型的整数实际写出的是整数在码表上对应的字母 写出字符串数据是把字符串本身原样写出。
4字符流底层为【字节流编码表】