【Java IO】FileInputStream 和 FileOutputStream
简介
FileInputStream和FileOutputStream都是用来处理二进制数据源磁盘文件的流的。 他们分别派生自顶层抽象类InputStream和OutputStream
FileInputStream
aaarticlea/png;base64,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" alt="" />
作用:用于从文件系统中的某个文件中获得输入字节,处理二进制原始字节文件,如exe 图片等。
1、构造关联 的文件可以使用 String 描述,也可以使用File ,FileDescriptor 对象表示 2、read 是可能阻塞当前线程的。当read等其他操作的字节数大于此对象直接可用(available)的字节数时会阻塞。
3、read到文件末尾返回 -1 构造函数
FileInputStream(File file)
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
FileInputStream(FileDescriptor fdObj)
通过使用文件描述符 fdObj 创建一个 FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。
FileInputStream(String name)
通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。 API
int available()
返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。
若返回5,那么调用 read(b, 0, 5) 是不会阻塞线程的,因为已经明确有5个字节的数据直接可用。 void close()
关闭此文件输入流并释放与此流有关的所有系统资源。 int read()
从此输入流中读取一个数据字节。
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len)
从此输入流中将最多 len 个字节的数据读入 byte 数组b中。
off表示第一个字节数据存储在b[off]中。第二个存储在b[off+1]...
len是最多读取的字节数 long skip(long n)
从输入流中跳过并丢弃 n 个字节的数据。
protected void finalize()
确保在不再引用文件输入流时调用其 close 方法。
FileChannel getChannel()
返回与此文件输入流有关的唯一 FileChannel 对象。
FileDescriptor getFD()
返回表示到文件系统中实际文件的连接的 FileDescriptor 对象,该文件系统正被此 FileInputStream 使用。
FileOutputStream
aaarticlea/png;base64,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" alt="" />
作用:用于将字节(二进制)数据写入关联的文件中。 1、构造时关联的文件可以使用 String 描述路径,或者使用File ,FileDescripter类对象。 2、append 为true 时,表示要对文件进行追加输入操作,则将字节写入文件末尾处,而不是写入文件开始处。 3、如果文件不存在,则会先创建文件。表示追加,append为true时,也是如此。当append为false,且文件已经存在,则是本次读写覆盖文件原来的内容。 构造函数
FileOutputStream(File file)
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream(File file, boolean append) FileOutputStream(FileDescriptor fdObj)
创建一个向指定文件描述符处写入数据的输出文件流,该文件描述符表示一个到文件系统中的某个实际文件的现有连接。
FileOutputStream(String name)
创建一个向具有指定名称的文件中写入数据的输出文件流。
FileOutputStream(String name, boolean append)
创建一个向具有指定 name 的文件中写入数据的输出文件流。 API
void close()
关闭此文件输出流并释放与此流有关的所有系统资源。
void flush()
刷新输出的数据在内存中的缓冲,强制数据写出到底层文件中。执行close时,会自动flush。
void write(byte[] b)
将 b.length 个字节从指定 byte 数组写入此文件输出流中。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 数据流向: b ---->FileOutputStream关联的文件
void write(int b)
将指定字节写入此文件输出流。 protected void finalize()
清理到文件的连接,并确保在不再引用此文件输出流时调用此流的 close 方法。
FileChannel getChannel()
返回与此文件输出流有关的唯一 FileChannel 对象。
FileDescriptor getFD()
返回与此流有关的文件描述符。
代码实例
下面是一个通过FileInputStream 和 FileOutputStream 拷贝exe可执行文件的例子。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; public class Main
{ public static void main(String[] args)
{ InputStream input = null ;
OutputStream out = null; try {
input = new FileInputStream(new File("D:\\2.exe"));
out = new FileOutputStream(new File("D:\\2_copy.exe"),false); byte[] buff = new byte[1024];
int len; //保存read实际读取的字节数。 while(-1!=(len = input.read(buff, 0, buff.length)))
{
out.write(buff, 0, len);
} out.flush(); //强制刷新输出流,使缓冲数据写入硬盘 System.out.println("copy success!"); } catch (FileNotFoundException e) { e.printStackTrace();
System.out.println("文件打开失败");
} catch (IOException e) { e.printStackTrace();
System.out.println("文件读写失败");
} finally
{ if(null!=out)
{
try {
out.close();
out = null;
} catch (IOException e) { System.out.println("输出文件关闭失败");
}
} if(input!=null)
{
try {
input.close();
input = null;
} catch (IOException e) { System.out.println("输入文件关闭失败");
}
} } } }
【Java IO】FileInputStream 和 FileOutputStream的更多相关文章
- java中FileInputStream和FileOutputStream对图片操作的例子
package a.ab; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F ...
- ava.io.InputStream & java.io.FileInputStream
java.io.InputStream & java.io.FileInputStream java.io.InputStream,这个抽象类是表示字节输入流的超类,这个抽象类的共性的方法有: ...
- Java修炼——FileInputStream和FileOutputStream
文件字节流FileInputStream是读文件内容 有一下五个方法 1) abstract int read( ); 2) int read( byte b[ ] ); 3) int read( b ...
- Java IO: FileInputStream
原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) FileInputStream可以以字节流的形式读取文件内容.FileInputStream ...
- 【java】io流之字节输入流:java.io.InputStream类及子类java.io.FileInputStream
package 文件操作; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impor ...
- java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to java.io.FileInputStream
今天在做文件上传的时候遇到一个这样的问题 java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to ja ...
- Java中用FileInputStream和FileOutputStream读写txt文件,文件内容乱码的问题,另附循环代码小错误
乱码问题大概就是编码格式不一样,搜了很多都是这么说的,修改编码解决乱码问题链接: https://blog.csdn.net/weixin_42496466/article/details/81189 ...
- Java IO 之 FileInputStream & FileOutputStream源码分析
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- java中OutputStream字节流与字符流InputStreamReader 每一种基本IO流BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStr
BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWri ...
随机推荐
- windows 并发与同步 学习笔记
测试 5.2 windows 中断与异常 1.外部硬件中断是通过处理器上的中断引脚管或者本地APIC的内置模块来发生的:对于一个处理器,一旦被中单, 某个预先被设定的中断服务例程就被执行! 2.处理器 ...
- POJ 1523 (割点+连通分量)
题目链接:http://poj.org/problem?id=1523 题目大意:连通图,找图中割点,并计算切除该割点后,图中的连通分量个数. 解题思路: POJ的数据很弱. Tarjan法求割点. ...
- BZOJ4260: Codechef REBXOR
Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output 输出一行包含给定表达式可能的最大值. S ...
- Memcached、Redis OR Tair
一.前言 非关系型数据库(NoSQL = Not Only SQL)的产品非常多,常见的有Memcached.Redis.MongoDB等优秀开源项目,相关概念和资料网上也非常丰富,不再重复描述,本文 ...
- 如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流
有些网站使用 flash 在线播放视频,不方便进行下载. 可以使用 Chrome 的 Developer Tools 模拟成 iOS 设备(通过修改 User Agent),然后取得 h.264 视频 ...
- Genymotion填坑之路
Genymotion是一款android的模拟器,之前用的一台电脑直接装上就可以用,后来换了一台机器,一直报获取不到IP,后来网上各种找方法,偶然发现网上说的是硬件问题: 在BIOS中将CPU的vir ...
- hdu Can you solve this equation?
本题是一道二分的题,核心就是mi的大小,即精度的取值.因为原函数是一个单调递增的函数,所以可以确定y的取值范围,并且在范围内的每一个y的值,一定至少存在一个x与其对应.刚开始我将取二分这个环节用一个函 ...
- php如何判断远程文件是否存在
<?php /* 函数:remote_file_exists 功能:判断远程文件是否存在 参数: $url_file -远程文件URL 返回:存在返回true,不存在或者其他原因 ...
- 让VIEWSTATE从页面中完全消失(小技巧)
VIEWSTATE是个好东西,是asp.net的一大创举,给web开发带来了极大的便利,然后这种便利是一种双刃剑,尤其是在前台页面,大多数前台页面都是用来展示列表数据,和用户交互的地方现在大都采用 ...
- 打包bat等文件成exe,双击运行不显示dos窗口,exe不报毒
准备材料如下bat和vbs直接新建文本,然后改后缀就可以建出来了(后面发现exe运行vbs来启动bat不报毒)下面内容就是要把这些文件打包成exe,双击exe后打开图片test.jpg,不显示dos窗 ...