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

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

回顾

java对文件的创建删除操作可查看这里:Java对本地目录和文件的创建以及删除操作!

1,java中的IO流介绍

在java io流中存在两种流,字节流和字符流,他们两者又可细分为输入流,输出流,这里我们主要理解字节流和字符流,以及输入流,输出流。
字节流:是我们常见的流,处理我们的图片,视频,文本数据等等数据,这些数据都是以字节流存在我们的电脑中的
字符流:字符流只能处理纯文本数据。
输入流:针对我们的编写程序而言,指程序读取本地存在的文件流。可以字节流读取也可以字符流读取。
输出流:针对我们的编写程序而言,指将我们想要的数据写出到我们的本地文件中,可以字节流写入也可以字符流写入。

可以用这张图来理解他们之间的关系
在这里插入图片描述

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测试
在这里插入图片描述
在这里插入图片描述
IutputStream测试
在这里插入图片描述

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测试
在这里插入图片描述
在这里插入图片描述

Reader测试
在这里插入图片描述

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的简单运用,但都看到这儿了点赞走一波呗,哈哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值