JAVA中常用IO流类:FileInputStream和FileOutputStream

MTK Linux DRM分析(十一)- MTK KMS Panel显示屏驱动 面板扩展(Panel Extension)是指 MediaTek 在标准 DRM 面板驱动框架之上添加的定制化功能模块。 阅读详情

FileInputStream 用于读取本地文件中的字节数据,继承自InputStream类

构造方法摘要
FileInputStream(File file) 
          通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream(FileDescriptor fdObj) 
          通过使用文件描述符 fdObj 创建一个FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。
FileInputStream(String name) 
          通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的路径名 name 指定。

方法摘要
 intavailable() 
          返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。
 voidclose() 
          关闭此文件输入流并释放与此流有关的所有系统资源。
protected  voidfinalize() 
          确保在不再引用文件输入流时调用其close 方法。
 FileChannelgetChannel() 
          返回与此文件输入流有关的唯一FileChannel 对象。
 FileDescriptorgetFD() 
          返回表示到文件系统中实际文件的连接的 FileDescriptor 对象,该文件系统正被此FileInputStream 使用。
 intread() 
          从此输入流中读取一个数据字节。
 intread(byte[] b) 
          从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
 intread(byte[] b, int off, int len) 
          从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
 longskip(long n) 
          从输入流中跳过并丢弃 n 个字节的数据。

其中read()返回的是读入的一个字节所对应的int值(0-255),而read(byte[] b) 和read(byte[] b, int off, int len) 返回的是读入的字节数

 

 

FileOutputStream用于将字节数据写出到文件。继承自OutputStream类

构造方法摘要
FileOutputStream(File file) 
          创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream(File file, boolean append) 
          创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream(FileDescriptor fdObj) 
          创建一个向指定文件描述符处写入数据的输出文件流,该文件描述符表示一个到文件系统中的某个实际文件的现有连接。
FileOutputStream(String name) 
          创建一个向具有指定名称的文件中写入数据的输出文件流。
FileOutputStream(String name, boolean append) 
          创建一个向具有指定 name 的文件中写入数据的输出文件流。

  

方法摘要
 voidclose() 
          关闭此文件输出流并释放与此流有关的所有系统资源。
protected  voidfinalize() 
          清理到文件的连接,并确保在不再引用此文件输出流时调用此流的 close 方法。
 FileChannelgetChannel() 
          返回与此文件输出流有关的唯一FileChannel 对象。
 FileDescriptorgetFD() 
          返回与此流有关的文件描述符。
 voidwrite(byte[] b) 
          将 b.length 个字节从指定 byte 数组写入此文件输出流中。
 voidwrite(byte[] b, int off, int len) 
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
 voidwrite(int b) 
          将指定字节写入此文件输出流。

实例代码:使用这两个类进行文件复制:

 

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
class IODemo
{
	public static void main(String[] args) 
	{
		try
		{
		//使用FileInputStream和FileOutputStream进行文件复制
		FileInputStream fis=new FileInputStream("a.txt");
		FileOutputStream fos=new FileOutputStream("b.txt");
			int read;
			//read=fis.read();
			byte b[]=new byte[1024];
			//读取文件,存入字节数组b,返回读取到的字符数,存入read,默认每次将b数组装满
			read=fis.read(b);
			while(read!=-1)
			{
				fos.write(b,0,read);
				read=fis.read(b);
				//read=fis.read();
			}
			fis.close();
			fos.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	}
}


 


上述的例子采用也可以只使用对象fis的read()方法,逐个字节的读入数据,然后用对象fos的write()这个字节输出。

 

注:FileInputStream 和FileOutputStream适用于操作于任何形式的文件(因为是以字节为向导),如果想要操作文本文件,采用FileInputReader和FileOutputWriter效率更高。

Misc-RAR隐写 题目来自于:XCTF的SimpleRAR,由于涉及到许多新知识,所以写篇小文子记录一下。 一、下载完后是一个压缩包。 里面就有一个flag.txt,打开之后发现有一串字符是flag is not here,而且我们查看他的文件大小,只要十六字节,绝对不可能再藏着什么信息了。 然后把压缩包拉到010editor里面,发现一下子出来好多新的内容,很明显是有夹杂着的附加文件。 二、rar文件头信息。 rar 是由一个一个 block 组成的,每个 block 有以下几个部分 ... 阅读详情

相关推荐

2022-8-3----Android10.0(MTK)-----SN_Writer 写入 SN 注意事项

SN_Writer、写入SN

qq_854189624的博客 1万+

java中FileOutputStream流中有参构造方法有无append形参的区别--超详细讲解版

当使用含有append参数的构造方法去创建输出流对象的时候,往文件中写内容的时候,是不会把第一次写入或者第二次写入的内容清空然后新建一个文件去写入新的内容,同时我们可以试着理解append的翻译是“追加”,则表示后来写入文件的东西是以追加的方式写入的,如果append传入的是true,那么将字节写入文件的末尾处,而不是写入文件的开始处,就不会清空原文件的内容。

weixin_75202470的博客 905

Python接口自动化测试实战:Requests+Pytest+Excel+Allure框架搭建指南

接口自动化测试是现代软件工程中保障软件质量的关键实践,其核心原理是通过脚本模拟客户端请求,自动验证API的功能、性能和可靠性。在Python技术栈中,Requests库以其简洁的API成为处理HTTP请求的基石,而Pytest框架则凭借其灵活的Fixture机制和强大的参数化功能,为测试用例的组织与执行提供了优雅的解决方案。结合Excel进行数据驱动测试,能够有效实现测试数据与脚本逻辑的分离,提升协作效率;最终通过Allure生成可视化测试报告,清晰呈现测试结果与过程。这套技术组合(Requests, Py

weixin_28677451的博客 304

JAVA FileOutputStream写文件覆盖问题

JAVA FileOutputStream写文件覆盖问题

weixin_42602900的博客 2699

第6章: MMU Notifier在KVM虚拟化中的应用

本文分析了KVM如何利用MMU Notifier机制维护客户机与宿主机地址映射一致性。KVM采用三层地址空间转换架构(GVA→GPA→HPA),通过硬件辅助虚拟化(EPT/NPT)实现高效转换。重点探讨了KVM MMU Notifier回调实现,包括invalidate_range_start/end等核心函数,以及HVA范围处理流程。当宿主机内存变化时,KVM通过注册的notifier回调及时更新映射关系,确保虚拟化环境的内存一致性。文章详细解析了相关数据结构和关键代码实现,揭示了KVM内存管理的核心机制

图形/计算GPU的驱动与虚拟化技术分享园地 2324

第 9 篇:TMC2240 速度调节实战|STEP 信号生成 + 平滑调速算法(无抖动)

摘要:本文详细介绍了TMC2240电机调速方案,重点解决调速时电机抖动、丢步等问题。核心原理是通过STEP信号频率控制转速,结合平滑加减速算法避免电流冲击。文章从速度与STEP频率的数学关系入手,提供了定时器生成固定频率STEP信号的实现代码,并给出不同转速下的频率参数表。针对42步进电机+256微步细分场景,详细讲解了定时器初始化、中断处理及固定转速设置方法,帮助开发者实现稳定调速。全文包含可直接复用的代码片段,适合嵌入式开发者快速实现电机平滑调速功能。

BackCatK Chen的博客 1035

javaweb上传文件报: java.io.FileNotFoundException:xxxat java.io.FileOutputStream.open0(Native Method)

1、上传文件并将该文件保存到tomcate中的webapp中,报错如下 2、原因为file文件没找到 3、解决方法,若文件不存在时就创建文件

ljj123_的博客 1万+

DSI3协议介绍

分布式系统接口(DSI)是一种通用且功能强大的总线协议,旨在将多个遥感器和执行器设备互连到中央控制模块。该网络的主要目标应用是汽车安全系统。这种应用的一些特点是需要低成本、高鲁棒性、中速互连,仅限于两根导线。此外,它必须具有故障安全性、确定性和良好的EMC特性。即使具有所有级别的智能和可编程性的设备都可以连接到网络,远程设备也必须能够通过简单的状态机实现。由于模块尺寸非常重要,因此中央模块和远程单元中的最小组件至关重要。

汽车电子软件领域知识分享 1万+

JavaIO-字节流(InputStream输入流、OutputStream输出流)

一)IO流 概述:IO流用来处理设备之间的数据传输,Java操作是通过流的方式实现,工具类都在java.io.*和java.nio.*包下。 流向:InputStream读取数据、OutputStream写数据。 类型:字节流,可以操作任何类型的数据,在计算机中任何数据都是以字节存储的。 字符流,适用于操作纯字符的数据。 二)InputStream&File...

p812438109的专栏 1033

【教程4>第3章>第1节】通信系统高阶调制解调概述

高阶调制(High Order Modulation)是一种先进的数字调制技术,旨在通过增加每个符号携带的信息比特数来提高无线通信系统的数据传输速率和频谱效率。这种技术特别适用于具有较高信噪比(Signal-to-Noise Ratio, SNR)的通信环境,例如卫星通信、光纤通信以及一些高质量的无线通信链路。在数字通信中,调制是将数字信号(比特流)转换为适合在物理信道上传输的模拟信号的过程。高阶调制通过使用更多的信号状态或星座点来表示不同的比特组合,从而在一个符号周期内传输更多的信息。

FPGA/MATLAB学习教程/源码/项目合作开发 1704

银河麒麟V10等保加固清单:安全基线配置一篇搞定(附逐项检查表)

通过限制使用SSH直接以root身份登录,禁用公钥登录的方式加强SSH服务的安全性。更改SSH默认端口可在一定程度上防止被黑客使用大批量扫描方式攻击。通过修改SSH的配置文件限制可以使用SSH服务远程管理的主机。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 818

Java IO流操作汇总: inputStream 和 outputStream

我们在进行Android java 开发的时候,经常会遇到各种IO流操作。IO流操作一般分为两类:字符流和字节流。以“Reader”结尾都是字符流,操作的都是字符型的数据;以“Stream”结尾的都是字节流,操作的都是byte数据。现将各种常见IO流总结如下: 一、字节流 1.inputStream 和 outputStream inputStream 和 outputStream为各种输

我的专栏 7万+

KNN算法

其原理是在给定的数据集中,根据某个距离度量方法,将测试数据与已知数据集中的所有数据进行距离计算,然后选取K个距离最近的数据作为测试数据的邻居,根据邻居的类别进行投票,将测试数据分类到得票最多的类别中。总之,KNN算法是一种简单而有效的分类方法,它不需要对数据进行训练,可以适用于多种数据类型和应用场景,并且可以通过调整K值或距离阈值等参数来控制算法的复杂度和性能。,KNN算法需要找到K个距离测试样本最近的训练样本,计算它们的类别,并将测试样本归入到得票最多的类别中。则取值为1,否则为0,表示邻居中属于类别。

优快云XXCQ的博客 2632

Java中常用文件IO流类:FileInputStream和FileOutputStream

简介: FileInputStream: java.lang.Object   java.io.InputStream     java.io.FileInputStream 所有实现的接口:Closeable,, AutoCloseable FileInputStream从文件系统中的文件获取输入字节。  FileInputStream用于读取诸如图像数据的原始字节流。 要阅读

_William_Cheung的博客 1169

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IO流概述及其分类

IO流概述及其分类 IO概念 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中, 流按流向分为两种: 输入流(读取数据) 输出流(写数据) 流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流 : 字符流只能操作纯字符数据,比较方便。 常用的IO流类 字节流的抽象父类 Inpu...

qq_36760873的博客 674

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JAVA的IO流

IO指的是Input/Output,IO流:输入输出流。统称为数据流。在Java程序中,对于数据的输入 / 输出操作以流的方式进行;流是从起源到接收的有序数据。JDK提供了各种各样的流类,用以获取不同种类的数据;

qq_63890435的博客 85

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java--IO流总结

1、什么是流? 流是对数据传输的总称或抽象。即数据在两设备间的传输称为流。本质就是数据传输 2、io流的分类 根据数据流的方向:输入流和输出流 根据处理数据单位:字节流和字符流 下图是一个描述输入流和输出流的类层次图。 (1)输入流和输出流 输入和输出都是从程序的角度来说的, 输入流是指程序从数据源中读取数据。只进行读操作;输出流是指将数据从程序中写到指定的文件中。 (2)字节流和字符流 字节流:一次读入或者读出的是8位二进制 字符流:一次读入或者读出的是16位二进制(中文对应的字节数是两...

Dream Lad的博客 399

java流有什么用_java中IO流有哪些,各有什么特点和功能

具体操作分成面向字节(Byte)和面向字符(Character)两种方式。如下图所 示:IO流的三种分类方式1.按流的方向分为:输入流和输出流;2.按流的数据单位不同分为:字节流和字符流;3.按流的功能不同分为:节点流和处理流。IO流的层次结构IO流的常用基类有:字节流的抽象基类:InputStream和OutputStream;字符流的抽象基类:Reader和Writer。注意:由这四个类派生出...

weixin_33609654的博客 653

JAVA IO流

通过IO可以完成硬盘文件的。

azc0207的博客 231

IO流(一)

JAVA IO java io可以让我们用标准的读写操作来完成对不同设备的读写数据工作. java将IO按照方向划分为输入与输出,参照点是我们写的程序. 输入:用来读取数据的,是从外界到程序的方向,用于获取数据. 输出:用来写出数据的,是从程序到外界的方向,用于发送数据. java将IO比喻为“流”,即:stream 就像生活中的"电流"\"水流"一样,它是以同一个顺序移动的过程,只不过这里流动的是字节(2进制数据),所以在IO中有输入流和输出流之分,我们理解他们是连接程序与另一端的“管道”,.

quiet_1的博客 280

Java IO流学习

I:Input;O:Output通过IO可以完成硬盘文件的读和写。

qq_75112481的博客 142
上一篇: JAVA IO详解
下一篇: JAVA中常用IO流类:FileReader和FileWriter
caixiexin
博客等级 码龄17年 122粉丝 53原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值