###JAVA I/O

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. 可以指定码表进行读写文件的数据。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、流的概念和作用。 流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象。即数据在两设备之间的传输...
    布鲁斯不吐丝阅读 10,326评论 2 95
  • Stream概述 Stream是一个数据流,可以从它读取数据或写入数据。它是连接数据源或数据目的地,例如文件,网络...
    狮_子歌歌阅读 791评论 1 2
  • tags:io categories:总结 date: 2017-03-28 22:49:50 不仅仅在JAVA领...
    行径行阅读 2,304评论 0 3
  • 笑过天上的月亮 ◎ 六月雪 九月的巴山风跟来了 和洪昌先生一起 上了达州的火车去哪里 ...
    兴安居士阅读 230评论 1 3
  • 人的固定思维是很难被改变的,从这个角度讲,而一般的不痛不痒的 培训是指公司高层的一种心理慰藉。而如何能让受训人员有...
    祥祥布鲁斯阅读 170评论 0 0

友情链接更多精彩内容