java--基础--16.2--IO流--FileInputStream,FileOutputStream

2023-10-27

java–基础–16.2–IO流–FileInputStream,FileOutputStream


1、字节流

|--字节流
	    |--字节输入流
			InputStream                              ------抽象类 
				int read():一次读取一个字节
				int read(byte[] bys):一次读取一个字节数组
		
				|--FileInputStream                   ------extends InputStream
			    |--BufferedInputStream               ------extends FilterInputStream------extends InputStream
				|--ByteArrayInputStream              ------extends InputStream
				|--StringBufferInputStream           ------extends InputStream

				 
				
		|--字节输出流
			OutputStream                             ------抽象类 
				void write(int by):一次写一个字节
				void write(byte[] bys,int index,int len):一次写一个字节数组的一部分
			
				|--FileOutputStream                  ------extends OutputStream
			    |--BufferedOutputStream              ------extends FilterOutputStream------extends OutputStream
				|--ByteArrayOutputStream             ------extends OutputStream
				 

2、FileInputStream

2.1、构造方法:

FileInputStream(File file)
FileInputStream(String name)

2.2、常用方法

  • int read():一次读取一个字节 ,速度慢
  • int read(byte[] b):一次读取一个字节数组,速度比read()快

2.3、案例

// 创建字节输入流对象,读字节速度很慢
 
 FileInputStream fis=new FileInputStream("fos.txt");
 int by=0;
 while((by=fis.read())!=-1){
	 System.out.println((char)by);
 }
// 释放资源
 fis.close();
// 创建字节输入流对象,读字节数组速度比读字节快
 FileInputStream fis2 = new FileInputStream("fos.txt");
 
byte[] bys=new byte[1024];
int len=0;
	while((len=fis2.read(bys))!=-1){
		System.out.println(new String(bys,0,len));
	}
// 释放资源
fis2.close();

输出:
b
b
a
c
c
bbacc

3、FileOutputStream

3.1、构造方法

创建一个向指定 File 对象的文件输出流。
如果文件不存在自动创建文件

  • FileOutputStream(File file)
  • FileOutputStream(String name)
  • FileOutputStream(File file, boolean append) append - 如果为 true,文件追加,false覆盖文件

3.2、常用方法:

  • public void write(int b):写一个字节
  • public void write(byte[] b):写一个字节数组
  • public void write(byte[] b,int off,int len):写一个字节数组的一部分

3.3、案例

FileOutputStream fos=null;
	try {
		//如果文件不存在自动创建文件
		fos=new FileOutputStream("fos.txt",true);
		fos.write("bb".getBytes());
		fos.write(97);
		fos.write("ccc".getBytes(),0,2);
	} catch (IOException e) {
		e.printStackTrace();
	}finally
	{
		try {
			fos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java--基础--16.2--IO流--FileInputStream,FileOutputStream 的相关文章

随机推荐

  • ubuntu下安装和配置Qt5.12.8

    1 下载qt opensource linux x64 5 12 8 run 2 sudo qt opensource linux x64 5 12 8 run 这样会安装到 opt目录下 3 安装过程中 要先拔掉网线 再装 一路默认 到选
  • 动态路由协议EIGRP配置实战

    一 路由协议概述 1 路由协议简介 对于路由器而言 要找出最优的数据传输路径是一件比较有意义却很复杂的工作 最优路径有可能会有赖于节点间的转发次数 当前的网络运行状态 不可用的连接 数据传输速率和拓扑结构 为了找出最优路径 各个路由器间要通
  • Java:如何正确使用Timer【java定时器的使用(Timer) 】

    在需要按时间计划执行简单任务的情况下 Timer是最常被使用到的工具类 使用Timer来调度TimerTask的实现者来执行任务 有两种方式 一种是使任务在指定时间被执行一次 另一种是从某一指定时间开始周期性地执行任务 下面是一个简单的Ti
  • dataframe 转 字典

    背景 将商品id以及商品类别作为字典的键值映射 生成字典 原为DataFrame 创建一个DataFrame 列值类型均为int型 import pandas as pd item pd DataFrame item id 100120 1
  • IDEA插件Apifox,一键自动生成接口文档!

    一 Apifox插件的优势 作为一名后端开发在项目开发过程中 肯定需要提供接口文档 一般我们有两种方案 项目结合Swagger 自动生成接口文档 手动将接口复制到其它接口文档 比如postman Apifox 第一种方案缺陷在于 为了生成完
  • html table tb左对齐,标签之美五——网页表格的设计

    标签之美 网页表格的使用 通过表格 可以使网页排版更加清晰 形式更加简洁漂亮 一 表格布局中三个重要的标签 1 表格的开始和结束标签 行列的布局都在 2 行标签的开始和结束 3 列标签的开始和结束 行标签在列标签的外层 不能单独使用 其中必
  • vue项目使用element-ui组件上传文件报错upload.addEventListener is not a function Mock数据报错的解决方案

    分享下使用element ui组件上传文件时报错upload addEventListener is not a function Mock的解决方案 首先出现这个错误的原因 主要是因为mockjs改动了axios里面XMLHttpRequ
  • STM32在Keil中芯片内部内存溢出

    STM32在Keil中芯片内部内存溢出 问题出现原因 在Keil5的Arm6 编译器中 STM32和SD ram 无法建立连接 导致编译不通过 解决方案 在全局变量只能设置外部RAM uint32 t trstsra 25000000 at
  • 笔记-STM32F407 DAC-DMA-TIM输出正弦波

    通用定时器6中断初始化 arr 自动重装值 psc 时钟预分频数 定时器溢出时间计算方法 Tout arr 1 psc 1 Ft us Ft 定时器工作频率 单位 Mhz 这里使用的是定时器6 void TIM6 Init u16 arr
  • 常见神经网络结构拓扑图

    神经网络的结构呈指数型增长的趋势 下图展示了多部分神经网络经典的拓扑结构 P gt FF 增加了一层隐藏层 所有节点为全连接 FF gt RBF 使用径向基函数 Radical Basis Function RBF 作为激活函数 而不是逻辑
  • 子网掩码、IP地址、网络号、网络位、主机地址范围

    子网掩码 ip地址 主机号 网络号 网络地址 广播地址几句话掌握子网掩码 ip地址 主机号 网络号 网络地址 广播地址 191 172 16 10 33 27 中的 27也就是说子网掩码是255 255 255 224 即27个全1 2 从
  • QT控件之(LineEdit)中输入的字符串中包含引号

    对于判断在qt的lineEdit中输入任何的引号进来的时候 都能加入判断 来进行打印 一 新建个qt的工程文件 然后在界面上放上个lineEdit和pushButton 界面布局如图 然后就是在转到槽文件中 加入如下的源码部分 void M
  • cron每2天跑一次_cron 表达式

    Cron 表达式是一个字符串 分为 6 或 7 个域 每一个域代表一个含义 Cron 有如下两种语法格式 1 Seconds Minutes Hours Day Month Week Year 2 Seconds Minutes Hours
  • 【效率】Linux常用命令大全

    编者荐语 Linux命令是对Linux系统进行管理的命令 对于Linux系统来说 无论是中央处理器 内存 磁盘驱动器 键盘 鼠标 还是用户等都是文件 Linux系统管理的命令是它正常运行的核心 有一点一定要注意 和dos命令不同的是 Lin
  • 无向图的深度与广度优先遍历

    define CRT SECURE NO WARNINGS include
  • 游戏数据存储的四种常用方式

    原文地址 http blog csdn net xiaominghimi article details 6948046 首先向大家说句抱歉 可能一些童鞋看到我的微薄了 我说突然不想写博客了 是Himi的错 我不该发微薄让大家担心的 Him
  • SF授权系统源码 V3.7全开源无加密版本

    介绍 2023全新SF授权系统源码 V3 7全开源无加密版本 字节网盘 http zijieyunpan cn AtAcOXPv1Kj 阅览
  • Tracy 小笔记 Vue - 表单控件双向绑定

    v model 双向绑定 用来实现表单元素 input 和数据的双向绑定 原理 v module 其实是一个语法糖 它的背后本质上包含两个操作 v on input 和 v bind value
  • PAT C语言入门题目-7-31 掉入陷阱的数字 (15 分)

    7 31 掉入陷阱的数字 15 分 对任意一个自然数N 0 先将其各位数字相加求和 再将其和乘以3后加上1 变成一个新自然数N 1 然后对N 1 重复这种操作 可以产生新自然数N 2 多次重复这种操作 运算结果最终会得到一个固定不变的数N
  • java--基础--16.2--IO流--FileInputStream,FileOutputStream

    java 基础 16 2 IO流 FileInputStream FileOutputStream 1 字节流 字节流 字节输入流 InputStream 抽象类 int read 一次读取一个字节 int read byte bys 一次