io流的学习4

news2024/9/25 11:17:45

字符缓冲流

原理:底层自带了长度为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.特有的写出方法,可以实现自动刷新,自动换行

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【旅游景点项目日记 | 第二篇】基于Selenium爬取携程网景点详细数据

文章目录 3.基于Selenium爬取携程网景点详细数据3.1前提环境3.2思路3.3代码详讲3.3.1查询指定城市的所有景点3.3.2获取详细景点的访问路径3.3.3获取景点的详细信息 3.4数据库设计3.5全部代码3.6效果图 3.基于Selenium爬取携程网景点详细数据 3.1前提环境 确保安装python3.x环…

HCIP的学习(4)

GRE和MGRE VPN---虚拟专用网络。指依靠ISP或其他公有网络基础设施上构建的专用的安全数据通信网络。该网络是属于逻辑上的。​ 核心机制—隧道机制(封装技术) GRE—通用路由封装 ​ 三层隧道技术,并且是属于点到点的隧道。 [r1]interface T…

1+x中级题目练习复盘(九)

注解和注释是两种完全不同的语法,注解可以为程序增加额外的功能,或为程序添加元数据。 函数式接口是指有且只有一个抽象方法的接口; 函数式接口可以使用 FunctionalInterface 进行标注,但不是必须的。除了 “java.util.function…

zabbix安装及使用(错误及解决方案)

安装zabbix 常见错误: Zabbix下载错误 6.0与5.0版本冲突 解决方法 yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get --skip-broken zabbix6.0-web 自己有数据库,使用以下命令 pid找不到 /var/log/zabbix/zabbix_server.log 错误&a…

[AutoSar]BSW_Com020 Handle_ID,Global_PDU,Local_PDU的联系

目录 关键词平台说明一、概念二、API的使用和形参三、Handle ID 唯一性特例四、PDU和handle ID关联用例 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector , EB芯片厂商TI 英飞凌编程语言C,C编译器HighTec (…

电子电器架构 —— 诊断数据DTC具体故障

电子电器架构 —— 诊断数据DTC具体故障 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣…

Windows 7 静态 IP 地址

Windows 7 静态 IP 地址 References 静态 IP 地址设置为 192.168.1.198 控制面板 -> 查看网络状态和任务 更改适配器设置 网络连接 -> 属性 TCP / IPv4 警告 - 已计划将多个默认网关用于提供单一网络 (例如 intranet 或者 Internet) 的冗余。 6.1. 关闭 redundancy VMw…

【stable diffusion扩散模型】一篇文章讲透

目录 一、引言 二、Stable Diffusion的基本原理 1 扩散模型 2 Stable Diffusion模型架构 3 训练过程与算法细节 三、Stable Diffusion的应用领域 1 图像生成与艺术创作 2 图像补全与修复 3 其他领域 四、Stable Diffusion的优势与挑战 👉优势 &#x1f…

WSL下Ubuntu+RTX4090安装CUDA+cuDnn+Pytorch

安装驱动 首先需要明确的是,在WSL下安装Ubuntu,如果要使用主机的GPU卡,只需要在主机Windows上安装驱动,Linux中不需要安装驱动,可以在Linux中使用nvidia-smi命令查看驱动版本。 安装CUDA 避坑注意事项:如…

C++初阶:STL容器list的使用与初版自实现

目录 1. list的接口与使用1.1 默认成员函数1.2 迭代器与容量相关成员函数1.3 存储数据操作相关成员函数1.4 其他list操作成员函数 2. list的自实现2.1 list的自实现功能2.2 list的结点结构2.3 list的迭代器2.3 list的结构2.4 list迭代器的运算符重载2.5 list的成员函数 3. cons…

FreeCAD傻瓜教程之基准面的构建-在实体的表面上新建坐标、倾斜的平面、附加不同的台阶、旋转体等

目的:学会在已有模型的不同剖面上建立新的坐标系,并绘图;使得新图形仍然作为同一个零件实体的构件。 零、需求举例 在下列模型中,我们要在圆杆的顶部增加一个把手,如果点击圆杆顶部,则仅能在顶部圆形所在…

【Linux】Linux工具学习之git

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 前言一、账号注册1.1 GitHub与Gitee 二、构建仓库三、安装git 四、配置git五、克…

[金三银四] 操作系统上下文切换系列

图源: https://zhuanlan.zhihu.com/p/540717796 文章目录 2.11 cpu 的上下文切换2.12 协程的上下文切换2.13 线程的上下文切换2.14 进程的上下文切换2.15 中断上下文切换2.16 什么时候会发生进程的上下文切换2.17 什么时候会发生线程的上下文切换2.18 什么时候会发生…

cocos3.0 关于UI组件学习

Sprite 图片:官方文档 Size Mode: 1.Raw:原始大小 2.TRIMMED: 默认,会裁切原始图片透明像素 3.Custom:自定义,只要修改ContentSize,会自动设置 Type 1.Simple:普通,会铺满,一张图。 2.Sliced…

信号处理与分析——matlab记录

一、绘制信号分析频谱 1.代码 % 生成测试信号 Fs 3000; % 采样频率 t 0:1/Fs:1-1/Fs; % 时间向量 x1 1*sin(2*pi*50*t) 1*sin(2*pi*60*t); % 信号1 x2 1*sin(2*pi*150*t)1*sin(2*pi*270*t); % 信号2% 绘制信号图 subplot(2,2,1); plot(t,x1); title(信号x1 1*sin(…

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);…

微服务(基础篇-003-Nacos)

目录 Nacos注册中心(1) 认识和安装Nacos(1.1) Nacos快速入门(1.2) 服务注册到Nacos(1.2.1) Nacos服务分级存储模型(1.3) 配置集群(1.3.1) 根据集群修改…

记录echarts各种地图json文件下载地址

今日绘图需要用到echarts的地图json文件,但是github上已经找不到了,后发现伟大的网友提供了地址如下:Index of /examples/data/asset/geohttps://echarts.apache.org/examples/data/asset/geo/

uniapp 打包后缺少maps模块和share模块的解决方案

缺失maps模块 我的应用 | 高德控制台 缺失share模块 QQ互联管理中心 微信开放平台

OC对象 - 关联对象(如何给分类添加成员变量)

文章目录 OC对象 - 关联对象(如何给分类添加成员变量)1. 基本使用1.1 提供的API1.1.1 添加关联对象1.1.2 获得关联对象1.1.3 移除所有关联对象1.1.3 修饰符 1.2 使用方法1.2 Key的常见用法1.2.1 使用的get方法的selecor作为key1.2.2 使用指针的地址作为k…