Java IO(五)字节流 FileInputStream 和 FileOutputStream
Java IO(五)字节流 FileInputStream 和 FileOutputStream
一、介绍
字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类(父类)。FileInputStream 和 FileOutputStream 是字节流用于操作文件的子类。
(一)、FileInputStream
FileInputStream 是文件字节输入流,继承自 InputStream,通常,我们使用FileInputStream从某个文件中获得输入字节。
(二)、FileOutputStream
FileOutputStream 是文件字节输出流,继承自 OutputStream,通常,我们使用 FileOutputStream 将数据写入 File 或者 FileDescriptor 的输出流。
二、构造方法
(一)、FileInputStream构造方法

(二)、FileOutputStream构造方法

三、常用API
(一)、FileInputStream常用API

(二)、FileOutputStream常用API

四、实例
(一)、单个字节读写数据
public static void main(String[] args) {
File file = new File("test.txt");
write(file, 'A');
char r = read(file);
System.out.println(r);
}
// 写入单个字节数据
public static void write(File file,int b) {
FileOutputStream fos = null;
try {
// 追加模式默认为 false ,即数据不续写到文件中
fos = new FileOutputStream(file);
fos.write(b);
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if (fos != null) {
fos.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
// 读取单个字节数据
public static char read(File file) {
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
return (char)fis.read();
}catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (fis != null) {
fis.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}
return 0;
}
(二)、字节数组读取数据
public static void main(String[] args) {
write();
read();
}
public static void write() {
FileOutputStream fos = null;
File file = new File("test.txt");
byte[] buffer = "abcdefghijklmnopqrstuvwxyz".getBytes();
try {
// 指定追加模式为true
fos = new FileOutputStream(file, true);
// 以字节数组写入
fos.write(buffer);
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if (fos != null) {
fos.close();
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
//读取字节数组数据
public static void read() {
File file = new File("test.txt");
FileInputStream fis = null;
byte[] buffer = new byte[10];
int len = 0;
try {
fis = new FileInputStream(file);
while((len = fis.read(buffer)) != -1) {
fis.read(buffer, 0, len);
System.out.println(new String(buffer));
}
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if (fis != null) {
fis.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
Java IO(五)字节流 FileInputStream 和 FileOutputStream的更多相关文章
- Java IO: 其他字节流(上)
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackInputStream,SequenceInputS ...
- java IO(五):字节流、字符流的选择规律
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- [Java IO]02_字节流
概要 字节流有两个核心抽象类:InputStream 和 OutputStream.所有的字节流类都继承自这两个抽象类. InputStream 负责输入,OutputStream 负责输出. 字节流 ...
- Java IO之字节流
Java中的输入是指从数据源等读到Java程序中,这里的数据源可以是文件,内存或网络连接,输出则是指从Java程序中写到目的地. 输入输出流可以分为以下几种类型(暂时不考虑File类) 类名 中文名 ...
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
- Java IO流-字节流
2017-11-05 17:48:17 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...
- Java—IO流 字节流
IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络…),即是将数据源读入到程序的通信通 ...
- java——io、字节流缓冲区拷贝文件、字节缓冲流
使用try catch finally关闭文件流: 写入文件: import java.io.*; public class exp{ public static void main(String[] ...
- java IO流——字节流
字节流主要操作byte类型数据,以byte数组为准,主要操作类有InputStream(字节输入流).OutputSteam(字节输出流)由于IputStream和OutputStream都是抽象类, ...
随机推荐
- postman(介绍)
Postman 界面介绍 一. 安装后首次打开 postman,会提示你是否需要登录,登录的话可以云端保存你的收藏及历史记录,不登陆不影响使用. 二. 进入后就是如下图所示的界面了.看到这么多按钮 ...
- LeetCode 56,区间合并问题
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第33篇文章,我们一起来看LeetCode的第56题,它的难度是Medium. 题意 这道题的题意也很简单,只有 ...
- 【Redis】跳跃表原理分析与基本代码实现(java)
最近开始看Redis设计原理,碰到一个从未遇见的数据结构:跳跃表(skiplist).于是花时间学习了跳表的原理,并用java对其实现. 主要参考以下两本书: <Redis设计与实现>跳表 ...
- HDU-6351 Beautiful Now 全排列暴力
Beautiful Now 题意 给出一个最大为10^9的数字n,以及一个k,你最多交换n中任意两个位置的数字k次,问形成的最大数字和最小数字. 思路 看到这题,我靠这题暴力交换一下,不难啊,咋没人做 ...
- iOS中的事件响应链、单例模式、工厂模式、观察者模式
学习内容 欢迎关注我的iOS学习总结--每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary iOS中事件传递和相应机制 i ...
- Spring MVC教程——检视阅读
Spring MVC教程--检视阅读 参考 Spring MVC教程--一点--蓝本 Spring MVC教程--c语言中午网--3.0版本太老了 Spring MVC教程--易百--4.0版本不是通 ...
- Millar Robin模板
\(Millar Robin\)模板 hdu2138 \(Code\) #include <cstdio> #include <iostream> #include <a ...
- Nginx初步入门
1.Nginx介绍 官网:nginx.org Nginx ("engine x") 是一个开源的.支持高性能.高并发的WWW服务和代理服务软件. 它是由俄罗斯人IgorSysoev ...
- Detect operating system [zabbix]
zabbix 默认会有3个script功能,分别是Detect operating system ,ping ,traceroute ,都比较好用.默认安装完毕需要做一些修改才能正常使用. 1.tra ...
- String的正则函数
String的正则函数: 查找敏感词: 4种情况 1. 查找一个固定的敏感词的位置i: var i=str.indexOf("敏感词",fromi) 在str中,从fromi位置开 ...