Java:IO流——字节流和字符流

目录

IO流的基本概念

IO流体系结构

FileOutputStream字节输出流

构造方法

成员方法

细节

关流

FileInputStream字节输入流

构造方法及成员方法

read不带参数代码示例

read带参数代码示例​编辑

将字节数组或字符数组转成字符串

FileReader 字符输入流

构造方法和成员方法

成员方法代码示例(和字节输入流类似)

FileWriter字符输出流


IO流的基本概念

IO流中的I是input,指的是输入,又叫读取,当java程序需要读取数据库的数据时,可以开通一个输入流管道,让java程序和数据库建立关联

IO流中的O是output,指的是输出,又叫写出,当java程序需要向数据库中写入数据时,可以开通一个输出流管道,让java程序和数据库建立关联

OI流可用于数据传输

IO流体系结构

Java中的流对象大体分为两大类:字节流(万能流)和字符流

字节流可以操作任意类型的文件,但是操作纯文本文件的时候,可能会出现乱码问题。所以凡是纯文本文件,都用字符流

FileOutputStream字节输出流

构造方法

输出流关联文件,若文件不存在,会自动创建文件

成员方法

第三个方法中,第二个参数off表示从哪个位置开始写,第三个参数len表示写多少个

细节

                    输出流关联文件, 文件如果不存在: 会自动创建出来

                     如果文件存在: 会清空现有的内容, 然后再进行写入操作,若想不清空文件内容直接追加,则需要将构造函数的第二个参数写为true(第二个参数默认值为false)

package com.itheima.stream.output;import java.io.FileOutputStream;
import java.io.IOException;public class FileOutputStreamDemo1 {/*字节流写出数据构造方法:1. public FileOutputStream(String name) : 输出流关联文件, 文件路径以字符串形式给出2. public FileOutputStream(File file) : 输出流关联文件, 文件路径以File对象形式给出成员方法:public void write(int i) : 写出一个字节public void write(byte[] bys) : 写出一个字节数组细节:输出流关联文件, 文件如果不存在: 会自动创建出来如果文件存在: 会清空现有的内容, 然后再进行写入操作*/public static void main(String[] args) throws IOException {// 创建字节输出流对象, 关联文件FileOutputStream fos = new FileOutputStream("D:\\A.txt", true); //true:追加,避免写入时清空文件byte[] bys = {97, 98, 99};// 写出数据fos.write(97);fos.write(98);fos.write(99);fos.write(bys);fos.write("你好你好".getBytes()); //字符串的getBytes方法可将字符串转换成字节数组fos.write(bys, 1, 2);}
}

关流

 在JDK7版本之前,标准关流操作需要用到普通的try-catch方法,语法繁琐,了解即可

JDK7版本之后

FileInputStream字节输入流

构造方法及成员方法

 

read不带参数代码示例

 

read带参数代码示例

将字节数组或字符数组转成字符串

FileReader 字符输入流

构造方法和成员方法

成员方法代码示例(和字节输入流类似)

 

FileWriter字符输出流

 

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

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

相关文章

远程桌面连接问题:出现身份验证错误。要求的函数不受支持错误【已解决】

问题描述: 在使用远程桌面时,出现的错误,原因在于CredSSP加密数据库修正问题,可以通过设置组策略解决问题 远程桌面连接 出现身份验证错误。 要求的函数不受支持错误注意: 如果使用注册表编辑器或其他方法修改注册表不…

方案:智能分析网关V4区域人数超员AI算法模型的应用场景介绍

视频AI智能分析技术已经深入到人类生活的各个角落,与社会发展的方方面面紧密相连。从日常生活中的各种场景,如人脸识别、车牌识别,到工业生产中的安全监控,如工厂园区的翻越围栏识别、入侵识别、工地的安全帽识别、车间流水线产品…

GPT-5、开源、更强的ChatGPT!OpenAI公布2024年计划

年终岁尾,正值圣诞节热闹气氛的OpenAI写下了2024年的发展清单。 OpenAI联合创始人兼首席执行官Sam Altman在社交平台公布,AGI(稍晚一些)、GPT-5、更好的语音模型、更高的费率限制; 更好的GPTs;更好的推理…

C语言课程设计|学生成绩管理系统(含完整代码)

目录 前言 简介 学生信息录入功能 学生单个信息查询 查询全部学生信息 修改学生信息 删除学生信息 退出 完整代码 前言 在临近期末之际,相信好多初学C语言的同学都开始为写C语言课程设计这件事开始焦虑了吧?或许会不知所措,或许会…

这些浏览器中的AI扩展太香了

B站:啥都会一点的研究生公众号:啥都会一点的研究生 众所周知,浏览器只有添加了扩展才能让其火力全开,效率翻倍,而当有了AI的加持后,直接起飞 本期将整理一些目前肥肠火的基于AI语言模型的扩展程序&#x…

java企业网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web企业网站系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

【Linux驱动】设备树简介 | 内核对设备树的处理

🐱作者:一只大喵咪1201 🐱专栏:《Linux驱动》 🔥格言:你只管努力,剩下的交给时间! 目录 🧲设备树简介🏹设备树语法🏹常见节点和属性&#x1f3f9…

基于ssm的二手商品交易平台+vue论文

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

基于ssm的航空票务推荐系统的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,航班信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…

Vue.js学习笔记(1)——Visual Studio Code搭建Vue.js框架

1 安装Node.js 1、下载安装包:进入官网(https://nodejs.org/en),下载左侧的稳定版。 2、选择安装位置,不用勾选自动安装必要工具。 其他都默认Next。 配置环境,具体参考本文章: https://blo…

用通俗易懂的方式讲解大模型:基于 Langchain 和 ChatChat 部署本地知识库问答系统

之前写了一篇文章介绍基于 LangChain 和 ChatGLM 打造自有知识库问答系统,最近该项目更新了0.2新版本,这个版本与之前的版本差别很大,底层的架构发生了很大的变化。 该项目最早是基于 ChatGLM 这个 LLM(大语言模型)来…

操作系统:可变分区管理

有作业序列:作业A要求42K;作业B要求27K,作业C要求22K,作业和空闲内存区如下图所示,请画出最佳适应算法空闲队列图,并分析最佳适应算法是否适合该作业系列。 答:最佳适应算法是按照空闲块由小到大…

解决windows系统找不到msvcr100.dll问题,vcomp100.dll缺失的5个解决方法

在日常使用计算机的过程中,我们可能会遇到一些错误提示,其中之一就是“找不到vcomp100.dll”的错误。那么,vcomp100.dll究竟是什么文件?为什么会出现丢失的情况?本文将为您详细解析vcomp100.dll的作用、丢失原因以及提…

ssm500基于J2EE的仓库管理系统设计与开发论文

摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于仓库信息…

Java注解以及自定义注解

Java注解以及自定义注解 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为 我们提供的元注解和相关定义注解的语法。 1、注解 1.1 注解的官方定义 注解是一种元数据形式。…

【Git】Git的基本操作

前言 Git是当前最主流的版本管理器,它可以控制电脑上的所有格式的文件。 它对于开发人员,可以管理项目中的源代码文档。(可以记录不同提交的修改细节,并且任意跳转版本) 本篇博客基于最近对Git的学习,简单介…

2023年03月15日_GPT4的发布会简单介绍

文章目录 各种考试长度限制图像输入功能开发者API定价评估框架1 - 基准测试表现2 - 文本和图像提示3 - 系统消息功能4 - 真实性、稳定性、可靠性 2023年3月15日 今天凌晨呢 万众瞩目的大型多模态模型 GPT-4正式发布 我们先总结一下发布会的重点 首先 这个模型能够接受图像和…

【Leetcode 39】组合总和 —— 回溯法

39. 组合总和 给你一个无重复元素的整数数组candidates和一个目标整数target ,找出candidates中可以使数字和为目标数target的 所有不同组合,并以列表形式返回。你可以按**任意顺序 **返回这些组合。 candidates中的同一个数字可以 无限制重复被选取 。…

Vue3-29-路由-编程式导航的基本使用

补充一个知识点 路由配置中的 name 属性 : 可以给你的 路由 指定 name属性,称之为 命名路由。 这个 name 属性 在 编程式导航 传参时有重要的作用。 命名路由的写法如下 : 像指定 path 一样,直接指定一个 name 属性即可。{path:/d…

GBASE南大通用-小内存单机安装GBase 8c分布式数据库实践

* 这种小内存部署方式仅用于分布式数据库个人学习使用,不建议用于其他用途。 随着数据高并发复杂场景业务需求不断增多,信息数据呈现出爆炸式增长、多源多维、数据类型繁复等特征。在这一趋势下,目前分布式数据库因其架构的天然优势&#xf…