美文网首页
###JAVA I/O

###JAVA I/O

作者: 望町 | 来源:发表于2018-01-06 16:51 被阅读0次
I/O流用于解决设备之间的数据传输问题。比如内存和硬盘之间的数据传输或者网络之间的数据传输

一、字节流的传输


输入字节流:
  • InputStream 所有输入字节流的基类,抽象类(read()方法需要实现)

  • FileInputStream 读取文件输入的字节流

(未解决的问题:FileInputStream返回的对象为什么不能直接转换为char类型)

  • BuffereadInputStream 缓冲输入字节流。该类维护了一个8kb字节的数组,作用是提高读写效率

示例:以字节的形式读取键盘输入与读取文件

public static void readFile() throws IOException{
        //建立文件与程序的输入数据通道
        FileInputStream fileInputStream = new FileInputStream("F:\\a.txt");
        //创建输入字节流的转换流并且指定码表进行读取,当传输图片时,可以直接传输字节流
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"gbk");
        int content = 0; 
        //一个一个字节的读取文件中所有文件  read(char[] cbuf, int offset, int length)可以按块读取文件

        while((content = inputStreamReader.read())!=-1){
            System.out.println((char)content);
        }
        //关闭资源
        inputStreamReader.close();
    }
输出字符流:
  • OutputStream 所有输出字节流的基类,抽象类(write方法需要实现)

  • FileOutputStream 向文件输出字节流数据

  • BuffereadoutoutStram 缓冲输出字节流。该类维护了一个8kb字节的数组,作用是提高读写效率

示例:以字节的方式输出数据到文件

public class write {
    public static void main(String[] args) throws IOException {
        //建立文件与程序的输出通道
        FileOutputStream fOuputStream = new FileOutputStream("F:\\a.txt");
        //向文件写入数据
        fOuputStream.write("laofe".getBytes());
        //将内容上传
        fOuputStream.flush();
    }
}

二、字符流的传输


输入字符流:

Reader 所有输出字符流的基类(read()方法需要实现)

FileReader 读取文件输入的字符流

Buffereader 缓冲输入字符流,提高文件读取效率并拓展了功能用于读取一行的字符

示例:以字符的方式读取文件

public class read {
    public static void main(String[] args) throws IOException {
        FileReader reader = new FileReader("F:\\a.txt");
//      System.out.print((char)reader.read());//读取了第一个字符
        BufferedReader bInput = new BufferedReader(reader);
//      System.out.print(bInput.readLine());//读取一行字符
        int temp;
        while((temp = reader.read())!=-1) {//读取所有字符
            System.out.print((char)temp);
        }
    }
}

输出字符流:

  • Writer 所有输出字符流的基类 (write方法需要实现)

  • FileWriterStream 向文件输出字符流数据

  • Bufferwriter 缓冲输出字符流,提高文件读取效率并拓展了功能用于输出一行的字符

示例:以字符的方式输出信息到文件

public class write {
    public static void main(String[] args) throws IOException {
        //将内容写入文件尾 new FileWriter("F:\\a.txt",true);可将内容追加到文件尾
        FileWriter write = new FileWriter("F:\\a.txt");//
        write.write("lalla");
        write.flush();
    }
}

三、转换流


  • putStreamReader 输入字节流 ———> 输入字符流

  • OutputStreamWriter 输出字节流 ———>输出字符流

转换流的作用:
  1. 可以把对应的字节流转换成字符流使用。

  2. 可以指定码表进行读写文件的数据。

相关文章

  • 线上学习资料汇总_新

    1. Java I/O 这些年一直记不住的 Java I/O 深入分析 Java I/O 的工作机制 NIO 入门...

  • NIO.2-简介

    More New I/O Java 7 中的 More New I/O APIs,通过在 java.nio.cha...

  • Java & Groovy & Scala & Kotlin -

    Overview 文章介绍的 I/O 主要用于本地文件读写,不涉及网络 I/O。 Java 篇 Java 中的 I...

  • I/O

    Java I/O 总结 理解Java中字符流与字节流的区别 深入学习 Java 序列化 Java I/O 操作及优...

  • 知识总结:I/O模型基础

    I/O基础 1、java1.4之前,java对I/O支持不完善,存在以下问题: 没有数据缓冲区,I/O性能存在问题...

  • Netty 权威指南笔记(一):网络 I/O 模型和 Java

    Netty 权威指南笔记(一):网络 I/O 模型和 Java IO 入门 Java I/O 模型的实现离不开底层...

  • Java I/O

    Java I/O主要包括三个部分1.流式部分2.非流式部分3.其他类 1.字符流 字符流处理文本数据,在java中...

  • java I/O

    一.文件/文件夹File 二.InputStream/OutputStream字节输入输出流 三.关闭流的方式 四...

  • Java I/O

    如果当初陪着你的人走远了,那些日子回忆起来会模糊吗? mark 标记reset 重置exist 存在modifie...

  • Java I/O

    流可以理解为一个有顺序的,有起点和终点的数据序列,输入流表示从一个源读取数据,输出流表示向一个目标写数据。 字节流...

网友评论

      本文标题:###JAVA I/O

      本文链接:https://www.haomeiwen.com/subject/fbvdnxtx.html