IO流的复习

1. 什么是IO流?

答:流(Stream):源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备,外部文件等。

2.IO流分为几类?

答:分类:按操作数据分为:字节流和字符流。 如:Reader和InpurStream

        按流向分:输入流和输出流。如:InputStream和OutputStream

3.什么是字节流?什么是字符流?

答:①字节流是由字节组成的,字节流是最基本的,所有的inputStream和outputStream的字节流,主要用在处理二进制数据,它是按字节来处理的。

     ②字符流是由字符组成的,Java里字符由两个字节组成,所有的Reader和Writer子类都是字符流,主要用在处理文本内容或特定字符。

4.字节流和字符流的区别?

答:①读写的时候一个是按字节读写,一个是按字符。②需要对内容按行处理,一般会选择字符流。③只是读写文件,和文件内容无关的(下载 、复制等),一般选择字节流。

5.字符流的常用类有哪些?


                                                     |--------BuffedReader

                     |----------Reader------

                     |                               |--------inputStreamReaderFileReader

答:字符流------|                               |--------BufferedWriter

                      |----------Writer------

                                                      |--------OutStreamWriterFileWriter

6.实现文件复制的思路和步骤是什么?

答:①首先创建字节输入流对象,然后创建字节输出流对象,一次读写一个字节,一次读写一个字节数组,最后退出。

      ②实例代码:

package com.jx.www.day;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Text {
	public static void main(String[] args) {
		FileInputStream input = null;
		FileOutputStream output = null;
		
		int n = 0;
		
		try {
			input = new FileInputStream("D:\\lenovo1.txt");
			output = new FileOutputStream("D:\\lenovo.txt");
			do {
				n = input.read();
				output.write(n);
			} while (n !=-1);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			
			try {
				input.close();
				output.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

}

7.如何使用字符流进行文件读写?

答:代码:

package com.jx.www.day;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Text5 {
	
	public static void main(String[] args) {
		FileReader reader = null;
		BufferedReader breader = null;
		BufferedWriter writer = null;
		
		try {
			reader = new FileReader("D:\\lenovo1.txt");
			writer = new BufferedWriter(new FileWriter("D:\\lenovo.txt",true));
			breader = new BufferedReader(reader);
			String temp = "";
			while ((temp = breader.readLine())!=null){
				writer.write(temp);
				writer.newLine();
			}
			writer.flush();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				breader.close();
				writer.close();
				reader.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值