代码编织梦想

(学习资料来自三更草堂)

1.1 概述

对硬盘进行数据的读取相比于从内存中存取数据要慢的多。所以JDK为我们提供了高效缓冲流来提高我们IO流的效率。内部原理就是借助内存的缓冲区来减少硬盘IO的次数,提高性能。

1.2 分类

  • 字节流

    输入流

    BufferedInputStream

    输出流

    BufferedOutputStream

  • 字符流

    输入流

    BufferedReader

    输出流

    BufferedWriter

public BufferedInputStream(InputStream in) 
public BufferedOutputStream(OutputStream out)
public BufferedReader(Reader in) 
public BufferedWriter(Writer out)

 

读数据: 

 

 

1.3 特有的方法

方法作用
BufferedReaderpublic String readLine() throws IOException一次读取一行数据,读到的内容不包含换行符,读到了文件末尾返回null。
BufferedWriterpublic void newLine() throws IOException写入一个换行符,会根据系统变化

 循环读取:

 

写入换行符:

 

实现文件复制:

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new FileReader("D:\\学习笔记\\JAVA\\JavaSE进阶\\io-test\\3.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\学习笔记\\JAVA\\JavaSE进阶\\io-test\\4.txt", true));

        String line;
        //一行行读
        while ((line = br.readLine()) != null) {
            bw.write(line);
            //写入换行符
            bw.newLine();
        }

        //释放资源
        br.close();
        bw.close();
    }

复制结果:

 

 

2. 转换流

2.1 概述

如果我们需要把字节流转换成字符流,可以使用转换流来实现转换。

2.2 分类

流类型
输入流InputStreamReader
输出流OutputStreamWriter

2.2 转换流的使用

当我们需要把字节流转换成字符流时直接使用转换流的构造方法进行转换即可。

public InputStreamReader(InputStream in)
public InputStreamReader(InputStream in, String charsetName)
public OutputStreamWriter(OutputStream out)
public OutputStreamWriter(OutputStream out, String charsetName)

 示例:

    public static void main(String[] args) throws FileNotFoundException {
        //字节流对象
        FileInputStream fis = new FileInputStream("C:\\Users\\root\\Desktop\\test\\汉字.txt");
        FileOutputStream fos = new FileOutputStream("C:\\Users\\root\\Desktop\\test\\转换流测试.txt");

        //转换成字符流
        InputStreamReader isr = new InputStreamReader(fis);
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        
    }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_49561506/article/details/127974850

java-io流——常用流及相关api介绍_zengk562的博客-爱代码爱编程

Java中的IO流体系分类 代码中字符串不同平台换行符的表示方法: Windows平台——\r\nUNIX/Linux/BSD平台——\n 分类字节输入流字节输出流字符输入流字符输出流抽象基类InputStr

io流——缓冲流的使用_changshuchao的博客-爱代码爱编程_io缓冲流

缓冲流:BufferedInputStream、BufferedOuputStream、BufferedReader、BufferedWriter 目的:通过使用缓存,加快读取和写入数据的速度。 缓冲流是一种包装流。

Java进阶:IO流系统——缓冲流-爱代码爱编程

IO流 缓冲流1.1 概述1.2 字节缓冲流构造方法效率测试1.3 字符缓冲流构造方法特有方法1.4 练习:文本排序案例分析案例实现 缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上

java io流_Java——IO流超详细总结-爱代码爱编程

该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。 在初学Java时,IO流是我遇到的一个很头疼的东西,Java IO 体系看起来类很多,感觉很复杂,但其实是 IO 涉及的因素太多了。在设计 IO 相关的类时,编写者也不是从

java 写入文件流_Java实现文件写入——IO流-爱代码爱编程

输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据。流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。 程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。 Java的输入输出功能来自java.io

java的io流有什么作用_Java IO流详解(一)——简单介绍-爱代码爱编程

文件在程序中是以流的形式来传输的。所以用Java来传输文件就得使用到Java IO流。 1、流的概念和作用 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象 流的本质:数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 作用:为数据源和目的地建立一个输送通道 2、Java IO所采用的模型 Java

java文件与数据流实验报告,java.io 包——字节流-爱代码爱编程

Java核心API之io包 标签(空格分隔): Java io流概述 大部分程序都是需要输入输出处理的,比如从键盘中读取数据,从屏幕中输出数据,从文件中写数据等等。在java中将这些不同类型的输入输出抽象为流。其中输入输出的数据则称为数据流,用统一的接口表示,从而使程序设计简单明了。 流一般是分为两种,一种是输入流,一种是输入流,然而在一些情况

Java必知:读写IO流-爱代码爱编程

一、IO流要明确的几点 (1)明确要操作的数据是数据源还是数据目的(是读还是写)         源/读         InputStream    Reader         目的/写         OutputStream        Writer (2)明确操作设备上的数据是字节还是文本         源/读        

JavaIO流——文件的读取与传输-爱代码爱编程

I/O也叫做输入/输出,在java编程语言中,I/O更被看作是一种流;JavaI/O的体系设计与Linux内核I/O有着密不可分的关系; 为了操作系统的安全考虑,Linux进程是无法直接操作I/O设备的,必须通过内核来协助完成I/O动作,而内核会为每个I/O设备维护一个缓冲区Buffer,又叫做缓冲区; 数据从I/O设备拷贝到buffer缓冲区(等

java_io——缓冲流_kiround的博客-爱代码爱编程

系列文章目录 Java_IO——概述 Java_IO——字节流 Java_IO——字符流 Java_IO——缓冲流 Java_IO——属性集与转换流 Java_IO——序列化与反序列化、打印流 Java_IO——IO异常的

垃圾回收相关概念概述(宋红康jvm学习笔记)_欲无缘的博客-爱代码爱编程

System.gc() 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 然而S

java+springboot基于性别网上学习特征问卷调查及可视化系统_qq242219979的博客-爱代码爱编程

基于JSP技术、SSM框架、B/S机构、Mysql数据库设计并实现了性别网上学习特征及可视化。系统主要包括个人中心、用户管理、调查问卷管理、用户答卷管理、专家建议管理、学习攻略管理、我的收藏管理、爬虫管理、系统管理等功能模块。  (1)绪论 网站的开发背景,意义和系统状况等,详细讲述了系统的用处,对本章进行总结。 (2)系统开发技术的介绍 分别对JSP技术

java中的io流如何理解——精简_java io流怎么理解-爱代码爱编程

目录 引言 缓冲流  字节缓冲流  字符缓冲流  转换流  字符输入转换流  字符输出转换流  序列化和反序列化  对象序列化  对象反序列化  打印流  Properties 引言 通过前面的简单学习,我们已经能够大致了解了关于文件的操作,但是能够明显感受到在执行其他的操作的时候,还是会有一些不方便的地方