io流的学习4

字符缓冲流

原理:底层自带了长度为8192的缓冲区提高性能。

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class BufferedStringdemo01 {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader("F:\\javaEE\\src\\MyCharset\\a.txt"));
        /*String s = br.readLine();
        System.out.println(s);*/
        String line;
        while((line=br.readLine())!=null){
            System.out.println(line);
        }
        br.close();
    }
}
package MyCharset;

import java.io.*;

public class BufferedStringdemo02 {
    public static void main(String[] args) throws IOException {
        BufferedWriter bw=new BufferedWriter(new FileWriter("F:\\javaEE\\src\\MyCharset\\a.txt"));
        bw.write("hhhhhhhh");
        bw.newLine();
        bw.write("aaaaaaa");
        bw.newLine();
        bw.close();
    }
}

转换流

是字符流和字节流之间的桥梁。

package myConvertstream;

import java.io.*;

public class mydemo01 {
    public static void main(String[] args) throws IOException {
        InputStreamReader isr=new InputStreamReader(new FileInputStream("myio\\gbkfile.txt"),"GBK") ;
   int ch;
   while((ch=isr.read())!=-1){
       System.out.println((char)ch);
   }
   isr.close();
    }
}
package myConvertstream;

import java.io.*;
import java.nio.charset.Charset;

public class mydemo01 {
    public static void main(String[] args) throws IOException {
/*   int ch;
   while((ch=isr.read())!=-1){
       System.out.println((char)ch);
   }
   isr.close();*/
        FileReader fr=new FileReader("myio\\gbkfile.txt", Charset.forName("GBK"));
        int ch;
        while((ch=fr.read())!=-1){
            System.out.println((char)ch);
        }
        fr.close();
    }
}
package myConvertstream;

import java.io.*;

public class mcdemo01 {
    public static void main(String[] args) throws IOException {
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("myio\\b.txt"),"GBK");
    osw.write("hellohello");
    osw.close();
    }
}
package myConvertstream;

import java.io.*;

public class mcdemo02 {
    public static void main(String[] args) throws IOException {
        /*将本地GBK文件转换成UTF-8*/
        //jdk11以前的方案
        InputStreamReader isr=new InputStreamReader(new FileInputStream("myio\\b.txt"),"GBK");
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("myio\\d.txt"),"UTF-8");
        int b;
        while((b=isr.read())!=-1){
            osw.write(b);
        }
        osw.close();
        isr.close();
    }
}
package myConvertstream;

import java.io.*;

public class mcdemo03 {
    public static void main(String[] args) throws IOException {
        /*利用字节流读取文件中的数据,每次读一整行,而且不能出现乱码*/
        FileInputStream fis=new FileInputStream("myio\\a.txt");
        InputStreamReader isr=new InputStreamReader(fis);
        BufferedReader br=new BufferedReader(isr);
        String s = br.readLine();
        System.out.println(s);
        br.close();
    }
}

序列化流

可以把JAVA中的对象写到本地文件中。

import java.io.Serializable;

public class Student implements Serializable {
    private int age;
    private String name;

    public Student() {
    }

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class odemo01 {
    public static void main(String[] args) throws IOException {
Student stu=new Student(24,"karry");
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("myio\\a.txt"));
        oos.writeObject(stu);
        oos.close();

    }
}

反序列化流

可以把序列化到本地文件中的对象,读取到程序中来。

package myConvertstream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class odemo02 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("myio\\a.txt"));
        Object o = ois.readObject();
        System.out.println(o);
        ois.close();
    }
}
序列化流和反序列化流的细节

1.使用序列化流将对象写到文件中时,需要让Javabean类实现Serializable接口,否则会出现NotSerializableException异常。

2.序列化流写到文件中的数据是不能修改的,一旦修改就无法再次读回来了。

3.序列化对象后,修改了JAVABean类,在次反序列化,会出现版本号异常。

4.给成员变量加transient关键字修饰,该关键字标记的成员变量不参与序列化过程。

打印流

分类:打印流一般是指:PrintStream、PrintWriter两个类

特点:

1.打印流只操作文件目的地,不操作数据源

2.特有的写出方法可以实现,数据原样写出

3.特有的写出方法,可以实现自动刷新,自动换行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/485490.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot实现合并单元格的excel文件导入到数据库(多模块)

最近做项目的时候一直在遇到excel导入导出的问题,本篇博文也是为了记录我这几天的血泪史,并做以记录,希望各位看完之后能有所收获。 以下是我excel文档里面的具体内容: excel文件中的编码信息属于另外一张表,所以以下…

基于VS code 实现Java前后端打通—基础—使用Springboot+postgreSql+mybatis+Navicat

前言: 作者学习webjava后的而总结,总的流程概括就是先使用springboot创建项目,在application.properties中完成相应的postgreSql和mybaits的环境配置和.xml文件中dependecy依赖配置,entities实现数据表的类型模板,分别…

【机器学习】包裹式特征选择之序列前向选择法

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

php 快速入门(一)

一、配置系统环境 1.1 安装软件 1、安装php的开发软件:phpstorm 在这个软件中写代码 2、安装php的运行软件:phpstduy 写好的php程序需要放到phpstduy中,用户才能访问和测试 安装过程注意事项:安装的路径中不能有空格和中文字符&…

day6:STM32MP157——串口通信实验

使用的是cortex A7内核 【串口通信的工作原理】 本次实验使用的是uart4的串口,分别使用了uart4_tx和uart4_rx两个引脚。根据板子的原理图我们可以知道,他们分别对应着芯片的PG11和PB2 从引脚名字也可以知道使用了GPIO口,所以本次实验同样需…

MCGS学习——用户管理

用户管理介绍 用户管理主要是为了实现触摸屏的安全操作,工业过程控制中,应该尽量避免由于人为的误操作所引发的故障或事故,而某些失误带来的后果是致命的;通过用户管理严格限制各类操作的权限,使不具备操作资格的人员…

软考高级:架构与中间件技术-软件复用概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

CHAT~(持续更新)

CHAT(持续更新) 实现一个ChatGPT创建API设计页面布局业务操作技术架构 编码其他 实现一个ChatGPT 创建API 最简单也最需要信息的一步 继续往下做的前提 此处省略,想要获取接口创建方式联系 设计 页面布局 按照官网布局 业务操作 注册登…

Linux 进程通信:匿名管道、实现进程池

目录 一、进程间通信 1、 为什么需要进程通信 2、发展和分类 二、管道 1、概念 2、特点 2、复制并共享 3、用fork来共享管道原理 4、站在文件描述符角度-深度理解管道 5、站在内核角度-管道本质 三、匿名管道 1、概念 2、创建 3、snprintf 4、父子进程中进行单…

抽取CLOB字段中XML的特定元素的VALUE值

在ORACLE数据库中,有时XML文件会被保存在CLOB字段中。 这时候,若是我们要获取此字段XML中特定元素的VALUE值,就需要用到xmltype 这个函数。 如下面的 XML文件,保存在 TABLE_A 的CLOB_K 字段,若是我们要获取其中的 Y…

onnx | onnx-simplifier安装和使用

安装: pip install -i https://pypi.douban.com/simple onnx-simplifierpip install -i http://mirrors.aliyun.com/pypi/simple onnx-simplifier 使用: python -m onnxsim face.onnx face_sim.onnx

Unity Canvas的三种模式

一、简介: Canvas的Render Mode一共有三种模式:Screen Space -OverLay、Screen Space-Camera、World Space Screen Space - Overlay(屏幕空间 - 覆盖): 这是最简单的 Canvas 渲染模式。UI 元素在这个模式下将渲染在屏…

Oracle参数文件详解

1、参数文件的作用 参数文件用于存放实例所需要的初始化参数,因为多数初始化参数都具有默认值,所以参数文件实际存放了非默认的初始化参数。 2、参数文件类型 1)服务端参数文件,又称为 spfile 二进制的文件,命名规则…

PostgreSQL11 | Windows系统安装PostgreSQL

本教程选取与参考书籍《PostgreSql11 从入门到精通》(清华大学出版社)的11大版本最新小版本11.22的安装作为教程案例 下载 下载PostgreSQL installer 下载到本地 安装 运行安装引导器 中国地区语言选项(暂时) Chinese(Simplifie…

2024牛客寒假算法基础集训营4补题

E:贪心数据结构 首先,我们看一个例子: 114514,令k3,我们从左开始,1,1,4,此时为3的倍数,那么我们就截断。 因为若我们在此截断,后面的5会对以后的数产生有利…

SSM | SSM框架整合

目录: 一、整合环境搭建整合思路准备所需JAR包编写配置文件 二、整合应用测试 作者简介 :一只大皮卡丘,计算机专业学生,正在努力学习、努力敲代码中! 让我们一起继续努力学习! 该文章参考学习教材为: 《Java EE企业级应…

Qt——2D画图

基础画图函数 矩形 painter.drawRect(50,50,200,100); 圆角矩形 painter.drawRoundRect(50,50,200,200,50,50); xRadius和yRadius分别以矩形宽度和高度的一半的百分比指定,并且应该在0.0到100.0的范围内 弧线 painter.drawArc(50,50,200,200, -90*16, 90*16);…

基于nodejs+vue学生作业管理系统python-flask-django-php

他们不仅希望页面简单大方,还希望操作方便,可以快速锁定他们需要的线上管理方式。基于这种情况,我们需要这样一个界面简单大方、功能齐全的系统来解决用户问题,满足用户需求。 课题主要分为三大模块:即管理员模块和学生…

[AutoSar]BSW_ECUC模块配置

目录 关键词平台说明一、背景二、EcucGeneral2.1 BswInitialization 三、EcucHardware四、EcucPduCollection五、EcucPartitionCollection 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector , EB芯片厂商TI 英飞凌编程语…

三星解释其 108MP Nonacell 传感器中的 PDAF 像素遮蔽

Electronic Imaging 发表了三星论文“采用 Nonacell 和 Super PD 的 CMOS 图像传感器的新型 PDAF 校正方法,以提高合并模式下的图像质量”,作者为 Yeongheup Jang、Hyungwook Kim、Kundong Kim、Sungsu Kim、Sungyong Lee 和 Joonseo Yim。 本文提出了一种新的 PDAF 校正方法…