Java基础之IO流

1.字节流
1.输入流:InputStream()
1.子类:FileInputStream()
2.输出流:OutPutStream()
2.子类:FileOutPutStream()
3.操作流程
1.硬盘—输入流---->内存—输出流----->硬盘
2.代码示例

			FileInputStream fis = new FileInputStream("aaa.txt");//创建输入流 关联硬盘上的aaa.txt
			FileOutputStream fos = new FileOutputStream("bbb.txt");//创建输出流 关联硬盘上的bbb.txt
			
			int len;
			byte [] arr = new byte[1024*8]; //定义小数组 加快读写
			
			while((len =fis.read(arr))!=-1) { //读取 判断
				fos.write(arr,0,len); //写入
			}	
			fis.close();//关流
			fos.close();	//关流
	}
4.带缓存区的输入输出流
	1.BufferedInputStream
	2.BufferedOutputStream
	3.代码实列:
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("aaa.txt"));
		BufferedOutputStream bos  = new BufferedOutputStream(new FileOutputStream("bbb.txt"));	
		
		int len;
		
		while((len=bis.read())!=-1) {
			bos.write(len);
		}
		bis.close();
		bos.close();

2.字符流
1.Reader–FileReader 字符输入流及其子类
1.readLine 读取一行 不含换行
2.newLine 跨平台输出"\r\n"
2.Writer–FileWriter 字符输出流及其子类
3.FileReader 和 FileWriter 的使用代码实列

		FileReader fr = new FileReader("aaa.txt");
		FileWriter fw = new FileWriter("bbb.txt");
		
		int len ;
		char [] arr = new char[1024*8];
		
		while((len =fr.read(arr))!=-1) {
			fw.write(arr,0,len);
		}
		
		fr.close();
		fw.close();
4.BufferedReader 和 BufferedWriter (带缓冲区,加快读写 效率略低小数组)代码示例
		FileReader fr = new FileReader("aaa.txt");
		FileWriter fw = new FileWriter("bbb.txt");
		
		BufferedReader br = new BufferedReader(fr);
		BufferedWriter bw = new BufferedWriter(fw);
			
		int len ;
		//char [] arr = new char[1024*8];
		while((len =br.read())!=-1) {
			bw.write(len);
		}
		
		br.close();
		bw.close();
	}

5.带指定编码表代码示例

		InputStreamReader isr = 
				new InputStreamReader(new BufferedInputStream(new FileInputStream("aaa.txt")),"gbk");//以gbk读取
		OutputStreamWriter osw =
				 new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream("bbb.txt")), "gbk");//以gbk写入
			
		int len ;
		//char [] arr = new char[1024*8];
		while((len =isr.read())!=-1) {
			osw.write(len);
		}
		isr.close();
		osw.close();

序列流(SequenceInputStream:整合多个字节流)
1.整合两个字节流,输出,示例代码

		FileInputStream fis1 = new FileInputStream("aaa.txt");
		FileInputStream fis2 = new FileInputStream("aaa.txt");
		SequenceInputStream sis = new SequenceInputStream(fis1, fis2);
		FileOutputStream fos = new FileOutputStream("ccc.txt");
		
		int len ;
		while((len=sis.read())!=-1) {
			fos.write(len);
		}
		
		sis.close();
		fos.close();

2.整合多个字节流,输出,示例代码

		FileInputStream fis1 = new FileInputStream("aaa.txt");
		FileInputStream fis2 = new FileInputStream("bbb.txt");
		FileInputStream fis3 = new FileInputStream("ccc.txt");
		FileOutputStream fos = new FileOutputStream("ddd.txt");
		
		Vector<FileInputStream> vt= new Vector<>();//创建集合
		vt.add(fis1);
		vt.add(fis2);
		vt.add(fis3);
		Enumeration<FileInputStream> en = vt.elements();//获取枚举的引用
		
		SequenceInputStream sis = new SequenceInputStream(en);
		
		int len;
		while((len=sis.read())!=-1) {
			fos.write(len);
		}
		sis.close();
		fos.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值