io流类总结

pgpool-II踩坑日记两则 最近结合pgpool-II进行postgreSQL高可用的部署,过程非常煎熬,作为新手,公司也没有前辈熟悉postgreSQL,只能自己摸索。好在已经搞明白了,把困扰我很长时间的两个问题分享一下。 1. show pool_nodes 第一个问题就是 show pool_nodes 的使用,照着教程建好后,在哪里执行这个指令呢?我在pg服务器上怎么执行这个指令都显示 ERROR: unrecognized configuration parameter "pool_nodes",一度怀疑人生。翻阅了很多资料 阅读详情

什么是节点流、转换流、处理流?

  • 节点流:FileInputStream FileOutputStream FileReader FileWriter
  • 处理流:BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter InputStreamReader OutputStreamWriter
  • 节点流是直接处理数据源的类
  • 处理流是处理其他流的类

一、字节流
OutputStream/Inputstream

OutputStream为抽象类,表示输出字节流的所有类的超类
Inputstream为抽象类,表示输出字节流的所有类的超类

1. FileOutputstream(文件输出流)

(1)构造函数
FileOutputStream(File file)
FileOutputStream(String filePath)

eg1.

  • //如果aaa文件夹存在b.txt文件不存在的话,可以创建该文件,但是aaa文件夹不存在会报错

    File file = new File("D:/aaa/b.txt");
    FileOutputStream fos = new FileOutputStream(file);  
    
  • //第二个参数表示是否在原来的基础上进行追加数据,运行2次程序,同样的数据存入两次,上面的构造方法不管多少次都只显示一遍数据

    fos = new FileOutputStream("D:/aaa/b.txt", true);
    

(2)写入方法
write(byte[] b),将 b.length 个字节从指定 byte 数组写入此文件输出流中。
write(byte[] b, int off, int len),将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。

eg1.
    fos.write(97);
    fos.write('\r');
    fos.write('\n');
eg2.
    String str = "hello 中文\r\n";
    byte[] bytes = str.getBytes();          
    fos.write(bytes);

2.FileInputStream(文件输入流)
(1)构造函数
FileInputStream(File file)
FileInputStream(String filePath)

  • //如果b.txt文件不存在,会报错
    File file = new File(“D:/aaaa/b.txt”);

(2)读取方法
read(),从此输入流中读取一个数据字节。
read(byte[] b),从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。

eg.
    byte[] bytes = new byte[102];
    int readInt = fis.read(bytes);
    while(readInt != -1){
        fos.write(bytes, 0, readInt);
        readInt = fis.read(bytes);          
    }

!!注意要如何把读入文件中的中文输出到控制台

eg1.中文字符输出为乱码
    int i = fis.read();         
    while(i != -1){
    //中文字符输出为乱码
        System.out.print((char)i);
        i = fis.read();
    }
eg2.中文字符正常输出
    byte[] bytes=new byte[102];
    int i = fis.read(bytes);
    while(i != -1){
        System.out.println(new String(bytes, 0, i));
        i = fis.read(bytes);
    }

3.BufferedOutputStream

  • 该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

(1)构造方法
BufferedOutputStream(OutputStream out),将数据写入指定的底层输出流。
BufferedOutputStream(OutputStream out, int size),将具有指定缓冲区大小的数据写入指定的底层输出流。

eg.
    FileOutputStream fos = new FileOutputStream("d:/day15/abc.txt");
    BufferedOutputStream  bos = new BufferedOutputStream(fos);
    byte[] bytes = "abc撒飞洒发的32sdf@#$23".getBytes();
    bos.write(bytes);
    bos.flush();

4.BufferedInputStream

  • BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。
  • 在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。
  • 在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。

(1)构造方法
BufferedInputStream(InputStream in),创建一个内部缓冲区数组并将其存储在 buf 中
BufferedInputStream(InputStream in, int size),创建一个长度为 size 的内部缓冲区数组并将其存储在 buf 中。

eg.
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File("d:/day15/abc.txt")));   
    byte[] bytes = new byte[1024];
    int length = bis.read(bytes);
    StringBuffer sb = new StringBuffer();
    while(length != -1){
        //sb.append(new String(bytes));
        System.out.println(new String(bytes));
        length = bis.read(bytes);
    }
    //System.out.println(sb);

5.ObjectOutputStream
ObjectInputStream

二、字符流
Reader/Writer

    Reader读取字符流的抽象类
    Writer写入字符流的抽象类

1.FileReader/FileWriter
(1)FileReader(File file)
FileReader(String filePath)
(2)FileWriter(File file)
FileWriter(String filePath)
FileWriter(String fileName, boolean append),可以在原来的基础上进行追加数据

eg.
    FileWriter fw = new FileWriter("d:/abc.txt");
    fw.write("sdfsdf沙发沙发沙发sdfasf@#$%$\r\n");
    fw.write("sdfsdf沙发沙发沙发sdfasf@#$%$\r\n");
    fw.write("sdfsdf沙发沙发沙发sdfasf@#$%$\r\n");
    fw.flush();     
    fw.close();

    FileReader fr = new FileReader("d:/abc.txt");
    char[] chars = new char[512];
    int length = fr.read(chars);

    while(length != -1){
        System.out.println(chars);
        length = fr.read(chars);
    }

2.BufferedWriter

  • 该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。
  • 并非所有平台都使用新行符 (‘\n’) 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。

(1)构造函数
BufferedWriter(Writer out),创建一个使用默认大小输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz),创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

eg.
    FileWriter fw = new FileWriter("d:/day15/abc.txt");
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write("宿舍的发顺丰");
    bw.newLine();
    bw.write(98);
    bw.write("宿舍的发顺丰"); 
    bw.write(98);
    bw.write("宿舍的发顺丰");
    bw.flush(); 
    bw.close();

3.BufferdReader

  • 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
  • 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
  • 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。

因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。
例如,

 BufferedReader in = new BufferedReader(new FileReader("foo.in"));

将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。

(1)构造函数
BufferedReader(Reader in),创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz),创建一个使用指定大小输入缓冲区的缓冲字符输入流。

(2)读取方法
readLine(),读取一个文本行

eg.
    FileReader fr = new FileReader("d:/day15/abc.txt");
    BufferedReader br = new BufferedReader(fr);
    String str = br.readLine();
    StringBuffer sb = new StringBuffer();
    while(str != null){
        sb.append(str + "\r\n");
        str = br.readLine();
    }
    System.out.println(sb);
    br.close();

三、转换流
1.OutputStreamReader

  • OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节
  • 每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。
  • 在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。
  • 注意,传递给 write() 方法的字符没有缓冲。

为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。
例如:

    Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

2.InputStreamReader

  • InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
  • 每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。
  • 要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。
例如:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

(1)构造函数
InputStreamReader(InputStream in),创建一个使用默认字符集的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName),创建使用给定字符集的 InputStreamReader。

例:

FileOutputStream fos = new FileOutputStream(new File("d:/day15/abc.txt"));  
BufferedOutputStream bos = new BufferedOutputStream(fos);
OutputStreamWriter osw = new OutputStreamWriter(bos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("adsfs");
bw.newLine();

InputStream is = System.in;         
BufferedInputStream bis = new BufferedInputStream(is);  
InputStreamReader isr = new InputStreamReader(bis); 
BufferedReader br = new BufferedReader(isr);            
System.out.println(br.readLine());

四、处理流

五、节点流

ABB变频器使用PROFINET IO通信模块时的激活方法 阅读详情

相关推荐

积木报表导出数据量太大报错

‌性能问题‌:‌当数据量非常大时,‌积木报表在导出过程中可能会遇到性能瓶颈,‌导致导出过程缓慢甚至失败。‌解决这一问题的方法包括优化SQL查询、‌调整分页大小、‌使用更适合处理大量数据的库(‌如阿里巴巴的EasyExcel)‌进行导出,‌或者采用异步处理的方式来避免接口超时1。‌内存溢出‌:‌如果报表工具或其依赖的库不支持流式(‌分批)‌导出,‌大量数据的处理可能会导致内存溢出。‌数据处理方式‌:‌如果待导出的数据包含特殊字符,‌如英文双引号或等号,‌这可能导致JSON反序列化报错。

Activiti工作流 1906

java io常用类总结

读写数据是java开发过程中经常需要做的,本篇文章将我们平时常用的java io处理类做个总结,同时给出相关demo。可以看得出来,JAVA IO主要有这四个类InputStream、OutputStream、Reader、Writer来处理,要处理字节流的就用InputStream、OutputStream,要处理字符流,就用Reader、Writer,现实中根据需要,我们选择他们的相关子类进行...

飞在江湖的专栏 7764

Windows环境下IBSIMU的安装

本文主要介绍离子束仿真程序IBSIMU在Windows环境下的安装。

C_Tso的博客 2992

java上传下载通用方法总结之流式 fos.write(file.getBytes())(三)

java上传下载通用方法总结之 fos.write(file.getBytes())(三) 这里总结用流的方法上传下载: /** *这里不仅可以传多个文件,还可以传其他参数。示例: *public R utilsuploadfile(@RequestParam MultipartFile[] files, * @PathVariable String modulename, * @PathVariable String filetype, * @PathVariable Integer size, *

m0_37635053的博客 2643

ABAP代码使用OAuth2.0 Client Credential调用外部API

ABAP-OAuth2.0-调用外部API

m0_74015269的博客 1956

TwinCAT3 主站动态配置 PDO 的实战技巧与性能优化

本文深入探讨了TwinCAT3主站动态配置PDO的实战技巧与性能优化策略。通过对比静态PDO的局限,阐述了动态配置在提升系统灵活性、降低网络负载和保障实时性方面的核心优势。文章提供了从环境准备、代码实现到错误排查的完整流程,并重点解析了PDO映射、SDO通道区别以及分布式时钟同步等关键概念,帮助工程师掌握EtherCAT网络性能调优的核心方法。

weixin_29213525的博客 346

IO流文件读写

#P1 打开文件、读文件、关闭文件的典型方法 try: f=open('D:/test.txt','r') print(f.read()) finally: if f: f.close() #P2 推荐的简洁写法,不必显示的关闭文件描述符 #open返回的对象在python中称作file-like 对象,可以是字节流、网络流、自定义流等 with o

Apollo的技术博客 454

从实验室到晶圆厂:一文看懂二维半导体(如MoS2)的CVD生长与晶体管制造挑战

本文深入探讨了二维半导体(如MoS2)从实验室研究到晶圆厂量产的CVD生长与晶体管制造关键技术挑战。重点分析了晶圆级二维半导体的CVD生长工艺优化、晶体管制造的四大界面工程难题,以及掺杂与集成的产业化解决方案,为二维半导体在集成电路领域的应用提供技术参考。

weixin_42651748的博客 472

IO流的常用类

【一】IO流分为两种:字符流、字节流 字符流:Reader、Writer(常用于文件文本的读写) 字节流:InputStream、OutputStream(常用于图片、歌曲、视频等文件的读写) 【二】字符流 (1)高效读写,即带有缓冲区的BufferedReader、BufferedWriter BufferedReader(Reader): 特有方法...

The_Best_Hacker的博客 1482

无人机——电机篇(一)

1. 电机的定义 电机俗称“马达”,是无人机的动力来源,无人机通过改变电机的转速来改变无人机的飞行状态。即改变每个电机的速度,使得无人机能够盘旋空中,上升或下降,或向各个方向移动。2. 电机的分类 电机分为:“无刷电机”和“有刷电机” - 无刷电机:是采用半导体开关器件来实现电子换向,具有可靠性高、低干扰、低噪声低、寿命长等优点。一般应用在稍大型的飞行器,载重大,可以有更广泛的用途。 - 有刷电机:是内含电刷装置的将电能转换成机械能(电动机)或将机械能转换成电能(发电机)的旋转电机。有刷电机是所有电机的基

weixin_46066938的博客 1万+

MAX30102心率血氧传感器原理图设计,已量产(e-Health传感器)

在最近的便携健康监测设备项目中,我们采用了集成算法的 MAX30102 心率血氧模块 —— 这类带内置 MCU 算法的传感器能直接输出心率 / 血氧数值,大幅降低了主控资源占用。但硬件电路的稳定性直接决定了 PPG 信号的采集精度,下面结合实际项目里的原理图,拆解下这个模块的设计细节。

不脱发的程序猿 1281

几种常用的IO流

之前我们学习了File类,对文件进行了操作,那么如果想对文件中的内容进行操作该怎么办呢?这就离不开流的概念了。流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出,下面是了解的一些关于IO流。

你不勇敢,没人替你坚强! 7534

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 387

File类与IO流

Java中File类和IO流

weixin_62973141的博客 2272

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

javaFile 类与 IO 流

处理流之三/四:数据流、对象流7.1数据流:DataOutputStream、DataInputStream作用– DataOutputStream:允许应用程序将基本数据类型、String 类型的变量写入输出流中– DataInputStream:允许应用程序以与机器无关的方式从底层输入流中读取基本数据类型、String 类型的变量。7.2对象流 DataInputStream① 自定义类需要实现接口:Serializable。

曦 1361

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C++三大IO流类总结——标准IO流、文件IO流、内存IO流

C++三大IO流类总结——标准IO流、文件IO流、内存IO流 IO流类一览标准IO流标准IO流的条件状态条件状态标志条件状态函数标准IO流的输入输出成员函数代码示例条件状态put和get函数getline函数标准IO的格式控制输出格式控制缓冲区控制控制bool类型格式进制控制其他常用输出格式控制输入格式控制文件输入输出流字符串输入输出流类 IO流类一览 ios:流基类(抽象类) istrea...

black_kyatu的博客 5198

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java的File类和IO流

File类和IO流基础

2302_81034736的博客 1349

File类和IO流

数据流(Data Streams)是一种用于处理基本数据类型(如intlongfloatdouble等)和String类型的输入输出流。它是 Java I/O 库的一部分,允许你以机器可读的二进制格式读写数据,从而提高数据传输的效率和兼容性。常见的数据流类包括和,它们分别用于读取和写入原始数据类型。自定义类需要需要定义一个全局常量要求自定义类的各个属性也是可序列化的对于基本数据类型:默认是可序列化的对于引用数据类型的属性: 要求实现Serializable接口。

2402_86577162的博客 909

File 类和 IO 流

在编程中,数据是存储在内存中的,但为了长久保存数据,就要使用文件(File)的形式存储,将数据存储在 I/O 设备上。 File类的对象代表操作系统的文件,File 类在 java.io.File 包下。File类提供了诸如:创建文件对象代表文件,获取文件信息、删除文件、创建文件等功能。 2. File 类的使用 2.1 创建 File 类 public File(String pathname) // 根据文件路径创建文件对象 public File(String pare

AlinaQ05的博客 874

Java--File类与IO流操作

本篇文章主要讲解了Java中有关File类的操作。IO流的分类,流的处理,其中关于流的处理部分,主要讲解了缓冲流、转换流和对象流的等等,并附带有关内容的练习和使用。

m0_72047169的博客 1609

Java基础学习-File类与IO流

》public File(String parent , String child):以parent为父路径,child为子路径创建。* 》public File(File parent , String child):根据一个父类File对象和子文件路径创建。将内存中的java对象保存在文件中或通。将文件中的数据还原为内存。* * 绝对路径:以windows操作系统为例,包括盘符在内的文件或文件目录的完整路。

practice_warm的博客 1864

第15章 File类与IO流

File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。File对象可以作为参数传递给流的构造器。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

qq_43117059的博客 1089

JAVA--File类与IO流

File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。File对象可以作为参数传递给流的构造器。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

@南初的博客 1246

File类和 IO流

文件在程序中是以流的形式来操作的创建文件对象相关构造器和方法相关方法new File(String pathname) // 根据路径构建一个File对象new File(File parent,String child) // 根据父目录文件+子路径构建new File(String parent,String child) // 根据父目录+子路径构建createNewFile 创建新文件。

y123916的博客 1353

IO流之管道流类

   在Java的IO流中有一种很特殊的流就是管道流类:PipedInputStream  PipedOutputStream.这两个类的实例对象必须要通过connect方法连接.  其实看这么一个程序就知道了管道流类的使用方法.//sender.javaimport java.io.*;import java.util.*;public class sender extends Thread {

Programming Note 1020

File类与io流大盘点

Java的File类与io的相关知识

2301_80464260的博客 712
上一篇: jQuery节点操作
下一篇: file文件
OpenWorld1
博客等级 码龄12年 1粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值