第十五章总结

一.输入/输出流
1.输入流
InputStrema类是字节输入流的抽象类,它是所有字节输入流的父类。

该类中所有方法遇到错误都会引发IOException异常。
read()方法:从输入流中读取数据的下一个字节。返回0~255的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回值为-1.
read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。
mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。
reset()方法:将输入指针返回到当前所做的标记处。
skip(long n)方法:跳过输入流上的n个字节并返回实际跳过的字节数。
markSupported()方法:如果当前流支持mark()/reset()操作就返回true().
close方法:关闭此输入流并释放与该流关联的所有系统资源。
2.输出流
OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流所有类的超类。

OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异常。
write(int b)方法:将指定的字节写入此输出流。
write(byte[] b)方法:将b个字节从指定的byte数组写入此输出流。
write(byte[] b,int off,int len)方法:将指定byte数组中从偏移量off开始的len个字节写入此输出流。
flush()方法:彻底完成输出并清空缓存区。
close()方法:关闭输出流。

二.File类
1.文件的创建与删除
(1)File(String pathname)
该构造方法通过将给定的路径名字符串转化为抽象路径名来创建一个新File实例。语法:
new File(String pathname)
其中,pathname代表路径名称(包含文件夹)
(2)File(String parent,String child)
该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File对象。语法:
new File(String parent,String child)
parent:父路径字符串。
child:子路径字符串。
(3)File(File f,String child)
该构造方法根据 f 抽象路径名和child路径名字符串创建一个新的File实例。语法:
new File(File f,String child)
f:父路径对象。
child:子路径字符串。
【例15.1】在D盘创建文本文件
代码:

结果:
若D盘下没有word.txt文件,则会创建该文件并输出如下内容:

若D盘下有word.txt文件,则会删除该文件并输出如下内容:
![]()
2.获取文件信息

【例15.2】读取文本文件的名称、长度和隐藏属性
代码:

结果:
file.listFiles() 获取该文件夹下所有文件(含文件夹)
file.isDirectory() 判断该文件是否是文件夹
练习:获取D盘中的一个文件夹里内容
代码:
结果:

三.文件输入/输出流
1.FileInputStream与FileOutputStream
FileInputStream类常用的构造方法:
FileInputStream(String name)
FileInputStream(File file)
第一个构造方法使用给定的文件名name创建一个FileInputStream对象,第二个构造方法使用File对象创建FileInputStream对象。
【例15.3】向文本文件中写入内容,再读取出来
代码:

结果


2.FileReader和FileWriter类
FileReader类和FileWriter类对应了FileInputStream类和FileOutputStream类。FileReader类顺序地读取文件,只要不关闭流,每次调用read()方法就顺序地读取源中其余内容,直到源的末尾或流被关闭。
【例15.4】使用字符流读写文本文件
代码:

结果:

四.带缓存的输入/输出流
1.BuffenedInputStream与BufferedOutputStream类
BuffenedInputStream类可以对所有InputStream类进行带缓存区的包装以达到性能的优化。
BuffenedInputStream类的两个构造方法:BuffenedInputStream(InputStream in)
BuffenedInputStream(InputStream in,int size)

BufferedOutputStream类也有两个构造方法:BufferedOutputStream(OutputStream in)
BufferedOutputStream(OutputStream in,int size)
2.BufferedReader与BufferedWriter类

BufferedReader类常用的方法:
read()方法:读取单个字符
readLine()方法:读取一个文本行,并将其返回为字符串。若无数据可读,则返回null
BufferedWriter类中的方法都返回void,常用的方法
write(String s,int off,int len)方法:写入字符串的某一部分
flush()方法:刷新该流的缓存
newLine()方法:写入一个行分隔符
【例15.5】使用缓冲流读写文本文件
代码:

结果:
五.数据输入/输出流
DataInputStream类与DataOutputStream类的构造方法:
DataInputStream(InputStream in):使用指定的基础InputStream对象创建一个DataInputStream对象
DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入文件的方法。
DataInputStream类提供了将字符串、double数据、int数据、boolean数据写入文件的方法。
DataOutputStream类只提供了一个readUTF()方法返回字符串。
【例】使用数据流读写文本文件
代码:

结果:

相关文章:
第十五章总结
一.输入/输出流 1.输入流 InputStrema类是字节输入流的抽象类,它是所有字节输入流的父类。 该类中所有方法遇到错误都会引发IOException异常。 read()方法:从输入流中读取数据的下一个字节。返回0~255的int字节值。如果因为已经到达流末尾而没有可用的…...
音频I2S
前言 基于网上资料对相关概念做整理汇总,部分内容引用自文后文章。 学习目标:简单了解相关概念、相关协议。 1 概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信…...
小程序中的合法域名的作用及条件有哪些?
小程序的合法域名是指小程序项目中使用的各种接口、资源文件等所在的域名。在小程序开发中,需要将这些域名添加到小程序后台的“开发设置”-“服务器域名”中进行配置,才能够正常使用。 合法域名的作用: 1.作为小程序请求的 API 服务器域名…...
SpringData JPA 整合Springboot
1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…...
打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion 黑白老照片上色修复
在这个时代,我们习惯于拥有高清、色彩丰富的照片,然而,那些古老的黑白色老照片由于年代的久远,往往会出现模糊、破损等现象。 那么今天要给大家介绍的是,用 Stable Diffusion 来修复老照片。 前段时间 ControlNet 的除了上线了“IP-Adapter”模型以外还增加另一个…...
第十三章总结
一.泛型 1.定义泛型类 泛型机制语法: 类名<T> 其中,T是泛型的名称,代表某一种类型。 【例13.6】创建带泛型的图书类 代码: 结果: 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyClass<T1,T2…...
大模型应用_PrivateGPT
https://github.com/imartinez/privateGPT 1 功能 整体功能,想解决什么问题 搭建完整的 RAG 系统,与 FastGPT相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大模型和向量库。适用于保密级…...
[Android] ubuntu虚拟机上搭建 Waydroid 环境
1.安装虚拟机 略 2.安装waydroid Ubuntu/Debian and derivatives For Droidian and Ubuntu Touch, skip directly to the last step Install pre-requisites sudo apt install curl ca-certificates -y Add the official repository curl https://repo.waydro.id | sudo…...
LeedCode刷题---滑动窗口问题(二)
顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、将X减到0的最小操作数 题目链接:将 x 减到 0 的最小操作数 题目描述 给你一个整数数组 nums 和一个整数 x 。每一…...
pycharm依赖管理(不要用pip freeze)
在使用python虚拟环境时,可以使用requirements.txt来管理当前项目的依赖。 注意,不要用 pip freeze > requirements.txt 这个命令,因为它会引入很多无关的包。 可以使用 pipreqs ./ --encodingutf-8 ./ 表示当前项目的目录࿰…...
[Kafka 常见面试题]如何保证消息的不重复不丢失
文章目录 Kafka1. Kafka如何保证不丢失消息?生产者数据的不丢失消费者数据的不丢失Kafka集群中的broker的数据不丢失 2. Kafka中的消息是否会丢失和重复消费?1. 消息发送2. 消息消费 3. Kafka 的设计是什么样的呢?4. 数据传输的事务定义有哪三…...
Java中System.setProperty()用法
Java中System.setProperty()用法 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起深入了解Java中的System.setProperty()方法,…...
Eclipse 自动生成注解,如果是IDEA可以参考编译器自带模版进行修改
IDEA添加自动注解 左上角选择 File -> Settings -> Editor -> File and Code Templates; 1、添加class文件自动注解: /*** <b>Function: </b> todo* program: ${NAME}* Package: ${PACKAGE_NAME}* author: Jerry* date: ${YEA…...
微信小程序vant安装使用过程中遇到无法构建npm的问题
官网地址,然而如果完全按照这个教程来,实际上是缺少步骤的,需要补充一些步骤(参考https://www.bilibili.com/video/BV1vL41127Er) # 这步init就是补充的 npm init npm i vant/weapp -S --production# 剩下的按照vant的…...
[python]用python获取EXCEL文件内容并保存到DBC
目录 关键词平台说明背景所需库实现过程方法1.1.安装相关库2.代码实现 关键词 python、excel、DBC、openpyxl 平台说明 项目Valuepython版本3.6 背景 在搭建自动化测试平台的时候经常会提取DBC文件中的信息并保存为excel或者其他文件格式,用于自动化测试。本文…...
Spring Boot 如何配置 log4j2
Log4j2 介绍 Spring Boot 中默认使用 Logback 作为日志框架,接下来我们将学习如何在 Spring Boot 中集成与配置 Log4j2。在配置之前,我们需要知道的是 Log4j2 是 Log4j 的升级版,它在 Log4j 的基础上做了诸多改进: 异步日志&…...
如何安装docker
安装Docker的步骤取决于您使用的操作系统。以下是常见操作系统上安装Docker的基本步骤: 对于Linux: 更新软件包索引: sudo apt-get update安装允许apt通过HTTPS使用仓库的包: sudo apt-get install apt-transport-https ca-certificates cur…...
Linux 之 性能优化
uptime $ uptime -p up 1 week, 1 day, 21 hours, 27 minutes$ uptime12:04:11 up 8 days, 21:27, 1 user, load average: 0.54, 0.32, 0.23“12:04:11” 表示当前时间“up 8 days, 21:27,” 表示运行了多长时间“load average: 0.54, 0.32, 0.23”“1 user” 表示 正在登录…...
用Go汇编实现一个快速排序算法
本代码全网首发,使用Go plan9 windows arm64汇编,实现基础版快速排序算法。 未引入随机因子的快速排序的普通Go代码长这样。 func QuickSort(arr []int) {if len(arr) < 1 {return}base, l, r : arr[0], 0, len(arr)-1for i : 1; i < r; {if arr…...
Spring-整合MyBatis
依赖 <dependencies><!--提供数据源--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency><!--提供sqlSessionFactory…...
在Windows系统中快速配置Taotoken的Python调用环境
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Windows系统中快速配置Taotoken的Python调用环境 对于Windows平台的开发者而言,快速搭建一个能够调用多种大模型的环…...
ARM NEON指令集:VLD3/VLD4内存加载指令详解
1. ARM SIMD指令集与VLD3/VLD4指令概述在现代处理器架构中,SIMD(单指令多数据)技术是提升计算性能的关键手段。作为ARM架构中SIMD扩展的核心,NEON技术通过宽寄存器并行处理数据,在多媒体编解码、图像处理、科学计算等领…...
终极NS模拟器管理工具:三分钟搞定Switch模拟器安装配置
终极NS模拟器管理工具:三分钟搞定Switch模拟器安装配置 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools 还在为复杂的Switch模拟器安装配置而头疼吗?NsEmuTools是你…...
NCE外汇:平台稳定性与用户体验的全面观察
金融服务行业的复杂性决定了平台需要在多个维度上同时具备较高的水准。NCE外汇经过多年的发展,已经在合规、技术、服务、教育等方面形成了一套相互支撑的体系。本文从评测视角出发,对其综合实力进行多维度的解读,呈现一个具有结构感的平台画像…...
Next.js SEO优化实战:用next-seo库高效管理元标签与结构化数据
1. 项目概述:SEO 优化的现代 React 解决方案 如果你正在用 Next.js 开发一个需要被搜索引擎收录的网站,比如企业官网、博客或者电商平台,那么“SEO”这个词一定让你又爱又恨。爱的是,它意味着流量和用户;恨的是&#…...
golang如何处理PostgreSQL JSONB字段_golang PostgreSQL JSONB字段处理方法
PostgreSQL的jsonb字段在Go中需用json.RawMessage或自定义struct接收,不可直接scan到string或sql.NullString;写入NULL须用nil指针,查询时应避免SELECT 配合[]interface{}。PostgreSQL 的 jsonb 字段在 Go 中不能直接 scan 到 stringPostgreS…...
ClawLite:一键简化OpenClaw AI Agent框架的安装与成本优化
1. 项目概述:ClawLite,让OpenClaw的安装与上手变得简单 如果你对AI Agent(智能体)感兴趣,尤其是听说过OpenClaw这个强大的开源项目,但又被它复杂的命令行安装、环境配置和晦涩的文档劝退,那么Cl…...
边缘AI推理芯片选型指南:从吞吐量到延迟的实战评估
1. 从数据中心到边缘:AI推理范式的根本性转变如果你正在为你的下一个AI项目选型硬件,尤其是在考虑将模型部署到摄像头、汽车或者医疗设备上,那么“边缘AI推理”这个词你一定不陌生。但很多人,包括一些经验丰富的工程师,…...
AI系统提示词安全防护:从泄露风险到后端代理实战
1. 项目概述:当系统提示词不再“秘密”最近在AI应用开发圈里,一个名为“asgeirtj/system_prompts_leaks”的项目引起了我的注意。这名字直译过来就是“系统提示词泄露”,听起来就有点意思。简单来说,这个项目收集并展示了在各种AI…...
2026年京东云环境OpenClaw / Hermes Agent 配置 Token Plan部署怎么搞?详细解读
2026年京东云环境OpenClaw / Hermes Agent 配置 Token Plan部署怎么搞?详细解读。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼T…...
