操作文件的流

package com.mepu;

import org.junit.Test;

import java.io.*;

/**
 * @author: 艾康
 * @date: 2019/12/31 17:03
 * @description: TODO
 * @modifiedBy:
 * @version: 1.0
 * io流
 */
public class IOTest {
    /*
    读入
     */
    @Test
    public void test1() {
        //获取到file
        File file = new File("Hello.txt");
        FileReader stream = null;
        try {
            //获取字符流对象
            stream = new FileReader(file);
            //使用char读取数据读取数据
            char[] cf = new char[1024];
            int len;
            while ((len = stream.read(cf)) != -1) {
                String str = new String(cf, 0, len);
                System.out.println(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
        }
        //关闭流对象
        if (stream != null) {
            try {
                stream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    /*
    写出
     */
    @Test
    public void test2(){
        //创建file对象,如果创建对象不存在时会直接创建
        FileWriter fileWriter = null;
        try {
            File file = new File("Hello1.txt");
            //创建字符输出流,如果不传入第二次参数则默认为false则覆盖文件传入true时追加
            fileWriter = new FileWriter(file,true);
            //写入数据
            fileWriter.write("bye 2019 \n");
            fileWriter.write("Hello 2020 \n");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭流
            try {
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    //字节流
    @Test
    public void test3(){
        FileInputStream inputStream = null;
        try {
            //创建file对象
            File file = new File("Hello.txt");
            //创建字节输入流
            inputStream = new FileInputStream(file);
            //读取数据
            byte[] buffer = new byte[5];
            int len;
            while ((len = inputStream.read(buffer)) !=-1 ){
                String s = new String(buffer, 0, len);
                System.out.print(s);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭流
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /*
    缓冲流
     */
    @Test
    public void test4(){
        BufferedInputStream stream = null;
        try {
            //创建文件对象
            File file = new File("Hello.txt");
            //创建字节流对象
            FileInputStream fileInputStream = new FileInputStream(file);
            //创建缓冲输入流对象
            stream = new BufferedInputStream(fileInputStream);
            byte[] bytes = new byte[5];
            int len;
            while ((len = stream.read(bytes)) != -1){
                String s = new String(bytes, 0, len);
                System.out.println(s);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭流对象
            try {
                stream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /*
    转换流
     */
    @Test
    public void test5(){
        try {
            FileInputStream inputStream = new FileInputStream("Hello.txt");
            //设置字符集
            InputStreamReader streamReader = new InputStreamReader(inputStream, "UTF-8");
            char[] c = new char[5];
            int len;
            while ((len = streamReader.read(c))!=-1){
                String s = new String(c, 0, len);
                System.out.println(s);
            }
            streamReader.close();
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/aikang525/p/12128820.html