字符流

RK3588 部署 YOLO26-Pose 人体姿态检测:Windows Docker 环境全流程 YOLO26-Pose 在 RK3588 上的部署流程是 PC 端 ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。INT8 量化后 YOLO26s-Pose 约 35ms,YOLO26n-Pose 约 15ms,可以覆盖实时姿态检测的需求。后处理是 Python 实现的常见瓶颈——如果帧率不达标,先用 npy 保存模型输出在 PC 上验证解析逻辑的正确性,确认无误后再迁移到 C++ 实现。 阅读详情
1.为什么要用字符流

因为使用字节流操作文字时容易出现乱码问题
所以使用字符流读取中文,字符流以字符为单位操作数据,这样就可以解决中文乱码问题

2.字符输入流

顶层父类: Reader(抽象类)

共性方法:
public void close();//释放资源
public int read();//一次读一个字符
public int read(char[] chs);//一次读取一堆字符,实际读取的字符个数

3.FileReader类的使用

文件的字符输入流: 以字符为单位从文件中读取数据

  • a.构造方法

public FileReader(String filepath);//指定文件路径
public FileReader(File file);//指定File对象

public class FileReaderDemo01 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileReader对象
        FileReader fr = new FileReader("1.txt");
//        FileReader fr = new FileReader(new File("1.txt"));
        /**
         * 以上构造干了三件事!!
         * a.创建对象 fr
         * b.判断文件是否存在
         *      如果存在,就存在,不清空内容
         *      如果不存在,直接抛出FileNotFoundException异常
         * c.绑定fr和文件1.txt
         */
    }
}
  • b.读取一个字符
/**
 * FileReader的read方法
 */
public class FileReaderDemo02 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileReader对象
        FileReader fr = new FileReader("1.txt");
        //2.一次读一个字符
        //int ch = fr.read();
        //System.out.println((char) ch);
        //============一次读取一个字符的标准循环============
        int ch = 0; //用于保证读取到的字符
        /**
         * (ch = fr.read()) != -1
         * 以上代码干了三件事!
         * a.先读 fr.read()
         * b.赋值 ch = 读取到的字符
         * c.判断 ch != -1
         */
        while ((ch = fr.read()) != -1) {
            System.out.print((char) ch);
        }
        //3.释放资源
        fr.close();
    }
}
  • c.读取一个字符数组
/**
 * FileReader的read方法
 */
public class FileReaderDemo03 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileReader对象
        FileReader fr = new FileReader("1.txt");
        //2.一次读一个字符数组
        //char[] chs = new char[4];
        //int len = fr.read(chs);
        //System.out.println("实际读取"+len+"个字符!");
        //System.out.println(new String(chs,0,len));
        //=========一次读取一个字符数组的标准循环==========
        char[] chs = new char[4];
        int len = 0;
        /**
         * (len = fr.read(chs)) != -1
         * 以上代码干了三件事!!
         * a.先读 fr.read(chs)
         * b.赋值 len = 实际读取的字符个数
         * c.判断 len != -1
         */
        while ((len = fr.read(chs)) != -1) {
            System.out.print(new String(chs,0,len));
        }

        //3.释放资源
        fr.close();
    }
}
4.字符输出流

顶层父类:Writer(抽象类)

共性方法:
public void close();//释放资源
public void flush();//刷新缓冲区(对于字符流有用!!)
public void write(int ch);//写一个字符
public void write(char[] ch);//写一堆字符
public void write(char[] ch,int startIndex,int len);//写一堆字符的一部分
public void write(String str);//写一个字符串
public void write(String str,int startIndex,int len);//写一个字符串的一部分

5.FileWriter类的使用

文件的字符输出流:向文件中以字符为单位写数据

  • a.构造方法

public FileWriter(String filepath);指定文件路径
public FileWriter(File file);指定文件对象

/**
 * FileWriter的构造方法
 */
public class FileWriterDemo01 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileWriter对象
        FileWriter fw = new FileWriter("1.txt");
//        FileWriter fw = new FileWriter(new File("1.txt"));
        /***
         * 以上构造干了三件事!
         * a.创建对象fw
         * b.判断文件是否存在
         *      如果存在,清空文件内容
         *      如果不存在,创建一个新文件
         * c.绑定fw和1.txt
         */
    }
}  
  • b.写出字符数据的三组方法

public void write(int ch);//写一个字符
public void write(char[] ch);//写一堆字符
public void write(char[] ch,int startIndex,int len);//写一堆字符的一部分
public void write(String str);//写一个字符串
public void write(String str,int startIndex,int len);//写一个字符串的一部分

/**
 * FileWriter的write方法
 */
public class FileWriterDemo02 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileWriter对象
        FileWriter fw = new FileWriter("1.txt");
        //2.以字符写数据
        //a.一次写一个字符
        fw.write('中');
        //b.一次写一个字符数组
        char[] chs = {'中','国','我','爱','你'};
        fw.write(chs);
        //c.一次写一个字符数组中的一部分
        fw.write(chs,2,3);
        //d.一次写一个串
        fw.write("中国我爱你,你爱我吗?");
        //e.一次写一个串的一部分
        fw.write("中国我爱你,你爱我吗?",4,3);
        //3.释放资源
        fw.close();
    }
}
  • c.关闭和刷新的区别
/**
 * FileWriter的flush和close方法
 */
public class FileWriterDemo03 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileWriter对象
        FileWriter fw = new FileWriter("1.txt");
        //2.写数据
        fw.write("Java");
        //调用刷新缓冲区
        //fw.flush();
        //3.释放资源
        fw.close();
        //再次写数据
        fw.write("PHP"); //报错!!
    }
}

close方法和flush方法的区别:
a.flush用于刷新缓冲区,流并不关闭,可以继续写数据!
b.close也有刷新的功能,同时流也会关闭,不能继续使用该流写数据了!

  • d.续写和换行

如何续写呢?? 非常简单,只要使用以下两个构造即可
public FileWriter(String filepath,boolean append);指定文件路径
public FileWriter(File file,boolean append);指定文件对象

/**
 * FileWriter的续写
 */
public class FileWriterDemo04 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileWriter对象
        FileWriter fw = new FileWriter("1.txt", true);//true表示续写
        //2.写数据
        for (int i = 0; i < 10; i++) {
            fw.write("java");
        }
        //3.释放资源
        fw.close();
    }
} 

如何换行??非常简单,只要写入一个代码换行符号即可
windows: \r\n
Linux: \n
Mac: \r

/**
 * FileWriter的换行
 */
public class FileWriterDemo05 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileWriter对象
        FileWriter fw = new FileWriter("1.txt");
        //2.写数据
        for (int i = 0; i < 10; i++) {
            fw.write("php\r\n");
//            fw.write("\r\n");
        }
        //3.释放资源
        fw.close();
    }
}  

字符流和字节流我们什么时候采用哪些流??
如果读写文本文件(.txt .java): 字符流
如果其他文件(.png .avi .mp3 .ppt .doc .xlsx):字节流

Codex 100个真实案例 - 用AI做英语单词计划学习工具(记忆曲线+测验) 背单词是英语学习的基本功,但市面上的背单词 APP 要么收费、要么广告太多。本案例用 Codex 从零打造一个 **英语单词计划学习工具**,实现 SM-2 间隔重复算法(Anki 的核心算法)、单词本增删改查、多种测验模式(选择题/拼写/听写)、TTS 发音播放,以及学习数据的可视化统计图表。全程用自然语言驱动 Codex,用 Python 写后端逻辑 + 终端 UI,打造你的私人背单词助手! 阅读详情

相关推荐

关于并网继电器的继电器自检逻辑及实现方式

对于常规的光伏并网逆变器来说,继电器控制至关重要。继电器一般位于逆变电感后,共模电感前,用于将逆变电压与电网电压脱开,一般国外有双继电器的安规强制认证要求,国内目前只需要单继电器要求(后续应该会有双继电器要求,个人感觉)

weixin_29982209的博客 2614

【Java】字符流

如果世界上存在一种流,它默认的是跟字节流是一样的,也是一次读一个字节,但是当遇到中文时,一次就能读多个字节,这样就能解决我们现在遇到的难题了。,一次读取三个字节,read方法进行读取,解码并转成十进制27721,因此读取完后,会把27721赋值给左边的。第二个原因很好解决,既然编码和解码时的方式不统一,那我们就将它统一起来呗,在以后实际开发中,默认使用的就是。在以后我们还会学习其他的字符输入流,命名的规则都是一样的,第二个单词不变,变一下第一个单词就行了。可以发现就算数据中有换行符,也是可以正确读取到的。

qq_39921135的博客 1247

EEG信号分析实战:从时域到频域,手把手教你用Python处理脑电数据

本文详细介绍了使用Python进行EEG信号分析的实战方法,涵盖时域分析、频域分析和时频分析三大核心技术。通过MNE-Python等工具,读者将学习如何从原始脑电数据中提取事件相关电位(ERP),解码脑波节律特征,并运用时频分析追踪动态神经活动。教程包含完整的代码示例和认知科学解释,适合神经科学研究者快速掌握EEG分析全流程。

pink的博客 1007

常见字符流

字符流 FileReader/FileWriter BufferedReader/BufferedWriter InputStreamReader/OutputStreamWriter

再来一块红烧肉 2582

3D模型文件格式全解析:从STL到glTF,10种主流格式与转换实战指南

在三维数字内容创作与工程制造领域,3D模型文件格式是数据交换与协作的基石。其核心原理在于以不同的数据结构(如三角网格、NURBS曲面、边界表示等)对三维物体的几何、外观及场景信息进行编码。理解这些格式的技术特性,对于保障数据完整性、提升工作流效率具有关键价值,广泛应用于3D打印、游戏开发、影视动画及工业设计等场景。例如,面向增材制造的STL格式以其极简的三角面片结构成为行业通用语,而支持丰富材质与动画的FBX格式则在影视游戏管线中扮演核心角色。本文聚焦于STL、OBJ、FBX、3MF、STEP等10种主流格

weixin_28520495的博客 355

PLc S7-200 smart如何使用Modbus 485通讯传输接收数据

西门子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器,从而实现PLC通过modbus方式控制其他器件。提示:以下是本篇文章正文内容,下面案例可供参考。

xjbsw0的博客 6万+

Java 字符流

字符流的介绍由于字节流操作中文不是特别的方便,所以Java就提供字符流字符流 = 字节流 + 编码表中文的字节存储方式用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数。...

今天我学废了吗 2727

从解压到编译:手把手带你用TeXstudio搞定第一篇ACM LaTeX论文

本文详细指导如何使用TeXstudio从解压ACM LaTeX模板到成功编译第一篇学术论文的全过程。涵盖环境准备、模板配置、TeXstudio设置及常见问题排查,特别针对ACM会议论文格式要求,帮助学术新人快速掌握LaTeX写作技巧。

weixin_30655569的博客 254

字符流和字符流的使用

(1) 字符流是以字符为单位读取文件中的数据​ (2) 字符流更加适合操作字符文件(如:txt,java,properties)​ (3) 文本文件是有编码方式的,常用的编码集:(1) ISO-8859-1:西方编码,不支持中文(2) GBK:中国标准编码,支持简体中文,也支持繁体中文(3) GB2312:中国标准编码,只支持简体中文(4) UTF-8:国际编码,支持全球所有国家的语言(5) Unicode:Java使用的编码。

weixin_52682014的博客 608

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

芒果YOLOv1改进35:主干Backbone篇之MobileViTv3:全网首发最新 MobileViTv3 系列最强改进版本(三)|轻量化Transformer视觉转换器,简单有效地融合了本地全局

包括YOLOv5、YOLOv7、YOLOv8等模型改进 415

【图像去噪】论文复现:超分思想助力荧光显微图像自监督去噪!N2SR的Pytorch源码复现,图文详细教程跑通源码,框架结构原理示意图与代码对应,注释详细,补充三个实用功能代码!

论文题目:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image —— Noise2SR:从超分辨率单噪声荧光图像中学习去噪【图像去噪】论文精读:Noise2SR: Learning to Denoise from Super-Resolved Single Noisy Fluorescence Image(N2SR)N2SR框架结构和原理都比较简单,创新点是加入超分,有很多类似的自监督框架;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 631

Java 字符流详解

在 Java 的 I/O 体系中,字符流(Reader和Writer)是专门用于处理文本数据的输入输出流。与字节流不同,字符流以字符为单位进行读取和写入,能够更好地处理文本信息,尤其是包含多字节字符(如中文)的文本文件。本文将从字符流的类关系图开始,详细介绍字符流的原理、使用方法以及常见问题。

专注Java和MySQL领域知识分享 1250

苹果生态最佳搭档:Mac mini + OpenClaw + iPhone 远程控制

本文详细介绍如何通过iPhone远程控制Mac mini上的OpenClaw应用,打造高效苹果生态工作流。内容包括:1) 苹果生态整合优势,包括AirDrop、Handoff等功能对比;2) Mac mini配置步骤,涵盖SSH/VNC设置、网络优化及Docker部署OpenClaw;3) iPhone端SSH/VNC客户端选择与Tailscale内网穿透配置;4) 详细SSH密钥设置与连接测试方法。通过这套方案,用户可实现跨设备无缝控制OpenClaw应用,提升远程工作效率。(149字)

一键难忘的博客 793

字节流和字符流

在Java.io包中操作文件内容主要有两大类:字节流和字符流,两类都分为输入输出操作。所有文件的存储都是按字节(byte)来存储的,在磁盘上保留的并不是文件的字符而是把字符编码成字节,再存储这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节的读取以形成字节序列。

qq_59808309的博客 2392

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

什么是字符流?为什么会有字符流?

为什么出现字符流?因为字节流操作中文不是特别方便,所以Java就提供字符流;字符流=字节流+编码表;字节流复制文本文件时也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别中文呢?是因为汉字在存储时无论选择哪种编码存储,第一个字节都是负数。 ...

wangkexiang21的博客 2802

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java中的字符流

一,为什么会出现字符流 由于字节操作中文不是特别方便,所以Java就提高字符流 字符流= 字节流+编码表,字符流的底层还是字节流 用字节直接复制文本时,文本文件也会有中文,但是没有问题 ,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文呢? 汉字在存储的时候,无论是选择哪种编码存储,第一个字节都是负数 二,编码表 基础知识 计算机存储的信息都是用二进制数表示的:我们屏幕上看到的中文,汉字等字符都是二进制数转换之后的结果 按照某种规则,将字符存储到计算机中,称为编码。反之,将计算机中的二级

qq_53009248的博客 1484

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IO流之字符流

Java IO流之字符流详解,用递归实现复制多级文件夹到指定位置。

m0_52861684的博客 916

IO-字符流

讲述了Java当中字符流的基础用法

m0_71174751的博客 792

Java基础——字符流

1.字符流 字符流出现的原因:由于字节流操作中文不是特别方便,所以,java就提供了字符流。 字符流: 字符流 = 字节流 + 编码表 2.String类中的编码和解码问题 编码: 就是把字符串转换成字节数组 把一个字符串转换成一个字节数组 public byte[] getBytes();使用平台的默认字符集将此 String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 public byte[] getBytes(String charsetName) 使用指定的字符集将此

威威的博客 2262

Java IO字符流

Java IO字符流

WYSCODER的博客 1082
上一篇: IO流
下一篇: IO流的异常处理
lemon20120331
博客等级 码龄9年 277粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemon20120331

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值