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();  
            }  
        }  
    }  
  
}  


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值