IO流----文件字节流、文件字符流

来源:互联网 发布:typedef struct node 编辑:程序博客网 时间:2024/04/27 22:47

流的分类

按流向分:
输入流:程序从数据源读取数据的流
输出流:程序向数据源写入数据的流
按数据传输单位分:
字节流:以字节为单位传输数据的流
字符流:以字符为单位传输数据的流

按功能分:
节点流:用于直接操作目标设备的流
处理流:是对一个已存在的流的连接和封装,通过对数据的处理为程序提供更为强大、灵活的读写功能。

FileInputStream字节输入流

package com.qf.day18_1;/** * 字节输入流 */import java.io.FileInputStream;public class Demo1 {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubFileInputStream fil = new FileInputStream("d:\\info.txt");//单个字节的输入流//int date=0;//while((date=fil.read())!=-1){//System.out.println(date);//}//多个字节的输入流byte[] b = new byte[1024*4];int len = 0;while((len=fil.read(b))!=-1){for (int i = 0; i < len; i++) {System.out.println(b[i]);}}fil.close();}}

FileOutputStream字节输出流

package com.qf.day18_1;import java.io.FileOutputStream;public class Demo2 {public static void main(String[] args) throws Exception {//创建文件字节输出流(如果文件不存在,则创建,如果文件存在,则默认覆盖,可以使用参数设置)FileOutputStream fos = new FileOutputStream("d:\\file.txt",true);fos.write('a');fos.write('b');fos.write(99);fos.close();}}

使用字节流复制文件

package com.qf.day18_1;/** * 使用字节流复制文件 */import java.io.FileInputStream;import java.io.FileOutputStream;public class Demo3 {public static void main(String[] args) throws Exception{FileInputStream fin = new FileInputStream("d:\\info.txt");FileOutputStream fout = new FileOutputStream("e:\\info.txt");byte[] buff = new byte[1024*4];int len=0;while((len=fin.read(buff))!=-1){fout.write(buff, 0, len);}fin.close();fout.close();System.out.println("复制完成");}}


FileReader使用字符流读文件

package com.qf.day18_2;/** * 使用字符流读取文件 */import java.io.FileReader;public class Demo1 {public static void main(String[] args) throws Exception{FileReader fileReader = new FileReader("d:\\info.txt");int data = 0;while((data=fileReader.read())!=-1){System.out.println((char)data);}fileReader.close();}}

FileWrite使用字符流写文件

<span style="font-size:14px;">package com.qf.day18_2;import java.io.FileWriter;/** * 使用字符流写文件 * @author Administrator * */public class Demo2 {public static void main(String[] args) throws Exception{// TODO Auto-generated method stubFileWriter fileWriter =new FileWriter("D:\\info.txt");for (int i = 0; i < 10; i++) {fileWriter.write("我爱北京天安门\r\n");//fileWriter.append(null);fileWriter.flush();}fileWriter.close();}}</span>

使用字符流复制文本

package com.qf.day18_2;/** * 使用字符流复制文件 */import java.io.FileReader;import java.io.FileWriter;public class Demo3 {public static void main(String[] args)throws Exception {FileReader fr = new FileReader("d:\\info.txt");FileWriter fw = new FileWriter("E:\\info.txt");char[] buff = new char[1024*4];int len=0;while((len=fr.read(buff))!=-1){fw.write(buff, 0, len);fw.flush();}fr.close();fw.close();}}


注:使用字符流只能复制文本,而字节流可以复制任何格式的文件(比如jpg、rar、exe等)

0 0
原创粉丝点击