IO流

什么是io流

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

io流分几类

  1. 字节流包含InputStream和OutputStream
  2. 字符流包含Reader和Writer

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

字节流是由字节组成的,字节流是最基本的,所有的InputStream和OutputStream的子类都是字节流,主要是用在处理二进制数据,他是按字节来处理的
字符流是由字符组成的,Java里字符是由两个字节组成的,所有的Reader和Writer的子类都是字符流,主要是用在处理文本内容或特定内容

字符流和字节流的区别?

  1. 读写的时候一个是按字节读写的,一个是按字符
  2. 需要对内容按行进行处理,一般会选择字符流
  3. 只是读写文件,和文件内容无关的(下载复制等),一般选择字节流。

字符流的常见类有哪些?

      文件输入输出流:FileReader  FileWriter

       缓存的文件输入输出流:BufferedReader   BufferedWriter

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

附代码

package com.lenovo.demo;

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 Test6 {

    public static void main(String[] args) {
        int count = 0;
         FileReader reader = null;
         BufferedReader breader = null;
         BufferedWriter writer = null;

        try {
            reader = new FileReader("D:\\lenovo.txt");
            writer = new BufferedWriter(new FileWriter("D:\\lenovo.txt"));
            breader = new BufferedReader(reader);
            String temp = "";
        while ((temp = breader.readLine())!=null) {
            writer.write(temp);
            writer.newLine();

        } 
            writer.flush(); 
            System.out.println("共循環"+count+"次");
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }   finally {
            try {
                reader.close();
                breader.close();
                writer.close();
            } catch (IOException e) {

                e.printStackTrace();
            }
        }
    }

}

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

附代码

package com.lenovo.demo;

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

public class Test2 {

    public static void main(String[] args) {
        FileInputStream input = null;
        FileOutputStream output = null;
        int n = 0;

        try {
            input = new FileInputStream("D:\\lenovo.txt");
            output = new FileOutputStream("D:\\lenovo1.txt");

            do {
                n = input.read();
                output.write(n);

            } while (n != -1);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
        } finally {
            try {
                input.close();
                output.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}

你可能感兴趣的:(Java)