Java常见的IO流的基本操作!


目录

  • 1,java中的IO流介绍
  • 2,字节输入流及字节输出流的简单使用
  • 3,字符输入流及字符输出流的简单使用
  • 4,字节流转换为字符流的简单使用



1,java中的IO流介绍

在java io流中存在两种流,字节流和字符流,他们两者又可细分为输入流,输出流,这里我们主要理解字节流和字符流,以及输入流,输出流。

字节流:是我们常见的流,处理我们的图片,视频,文本数据等等数据,这些数据都是以字节流存在我们的电脑中的

字符流:字符流只能处理纯文本数据。
输入流:针对我们的编写程序而言,指程序读取本地存在的文件流。可以字节流读取也可以字符流读取。
输出流:针对我们的编写程序而言,指将我们想要的数据写出到我们的本地文件中,可以字节流写入也可以字符流写入。

可以用这张图来理解他们之间的关系

Java实现数据处理流程编排与定义_Java实现数据处理流程编排与定义

2,字节输入流及字节输出流的简单使用

import org.junit.Test;

import java.io.*;

/**
 * @author ganxiang
 * IDE      IntelliJ IDEA
 * @project_name and filename HadoopTraining FileStream
 * @date 2020/05/05 0005 12:44
 */

//字节流处理
public class FileStream {
    String path="D:\\StudyDemo\\IDEA\\TestDir\\createFile.txt";
    @Test
    public void outputStream() throws IOException {
        FileOutputStream outputStream =new FileOutputStream(path);
        outputStream.write("hello everyone".getBytes());
        outputStream.close();
        System.out.println("字节流写入文件成功~");
    }
    @Test
    public void inputStream() throws IOException {
        FileInputStream inputStream =new FileInputStream(path);
        //1,字符串输出
        //available()获取可读的字节数
//        byte[] data=new byte[inputStream.available()];
//        inputStream.read(data);
//        System.out.println(new String(data));
        //2,字符输出
        int f =inputStream.read();
        while (f>0){
            System.out.print((char)f);
            f=inputStream.read();
        }
        inputStream.close();
        System.out.println("以字节流读取文件成功~");

    }
}

OutputStream测试

Java实现数据处理流程编排与定义_Java实现数据处理流程编排与定义_02


Java实现数据处理流程编排与定义_java_03


IutputStream测试

Java实现数据处理流程编排与定义_Java实现数据处理流程编排与定义_04

3,字符输入流及字符输出流的简单使用

import org.junit.Test;

import java.io.*;

/**
 * @author ganxiang
 * IDE      IntelliJ IDEA
 * @project_name and filename HadoopTraining FileReaderAndWriter
 * @date 2020/05/05 0005 13:18
 */
//字符流处理
public class FileReaderAndWriter {
    String path="D:\\StudyDemo\\IDEA\\TestDir\\createFile.txt";
    @Test //读取字符流
    public  void reader() throws IOException {
        FileReader reader =new FileReader(path);
        //将读取的字符转换为ASCII编码
        int f =reader.read();
        while (f>=0){
            System.out.print(String.valueOf((char)f));//将ASCII编码转换为字符输出
            f=reader.read();//读取下一个字符
        }
        reader.close();
    }
    @Test //写出字符流
    public void writer() throws IOException {
        FileWriter writer =new FileWriter(path);
        //1,BufferedWriter()写出数据
        BufferedWriter bufferedWriter =new BufferedWriter(writer);
        bufferedWriter.write("welcome to here\n");//换行写入
        bufferedWriter.write("你好!");
        bufferedWriter.close();
        //2,FileWriter()写出数据
//        writer.write("今天30度\n");
//        writer.write("真热");
//        writer.close();
        System.out.println("写入成功~");
    }

}

Writer测试

Java实现数据处理流程编排与定义_字符流_05


Java实现数据处理流程编排与定义_输出流_06

Reader测试

Java实现数据处理流程编排与定义_java_07

4,字节流转换为字符流的简单使用

这里简单来说,将字节流的输入输出转换为字符流的输入输出操作。

import org.junit.Test;

import java.io.*;
import java.util.Scanner;

/**
 * @author ganxiang
 * IDE      IntelliJ IDEA
 * @project_name and filename HadoopTraining Transform
 * @date 2020/05/05 0005 16:26
 */
public class Transform {
    String path="D:\\StudyDemo\\IDEA\\TestDir\\createFile.txt";
    String path1="D:\\StudyDemo\\IDEA\\TestDir\\1.txt";
    @Test //字节输入流转换为字符输入流->将文件字节流读取转换为字符流读取
    public void inputStreamToReader() throws IOException {
        FileInputStream inputStream =new FileInputStream(path);
        InputStreamReader inputStreamReader =new InputStreamReader(inputStream);
        char [] chars =new char[200];
        inputStreamReader.read(chars);
        System.out.println(new String(chars));
        inputStreamReader.close();
        System.out.println("将文件字节流读取转换为字符流读取成功~");
    }
    @Test //字节输出流流转换为字符输出流->将文件字节流写入转换为字符流写入
    public void outputStreamToWriter() throws IOException {
        FileOutputStream outputStream =new FileOutputStream(path1);
        OutputStreamWriter outputStreamWriter =new OutputStreamWriter(outputStream);
        outputStreamWriter.write("测试字节输出流转换为字符输出流写入文件~");
        outputStreamWriter.close();
        System.out.println("将文件字节流写入转换为字符流写入成功~");

    }
}

虽然都是一些API的简单运用,但都看到这儿了点赞走一波呗,哈哈。