Java字节流:FileInputStream FileOutputStream
-----------------------------------------------------------------------------------
FileInputStream 
类声明:public class FileInputStream extends InputStream
位于java.io包下
官方对其说明:
  A FileInputStream obtains input bytes from a file in a file system. What files are available depends on the host environment.. 
  (简单翻译:FileInputStream从文件系统中的某个文件中获得输入字节.)
构造方法:
FileInputStream(File file);
通过打开一个到实际文件的连接来创建一个FileInputStream实例,该文件通过文件系统中的File对象file指定。
  FileInputStream(String name);
	    通过打开一个到实际文件的连接来创建一个FileInputStream实例,该文件通过文件系统中的路径名name指定。
  FileInputStream(FileDescriptor fdObj);
	    通过使用文件描述符fdObj创建一个FileInputStream实例。
主要方法:
  - int available(): 返回字节文件输入流中可读取的字节数
  - void close(): 关闭此文件输入流并释放与该流有关的系统资源.
  - protected void finalize(): 确保在不再引用文件输入流时调用其close()方法.
  - int read(): 从文件输入流中读取一个字节数据
  - int read(byte[] b): 从文件输入流中将最多b.length个字节数据读入到字节数组b中
  - int read(byte[] b,int off,int len): 从文件输入流中将最多len个字节的数据读入到字节数组b中
  - long skip(long n): 从文件输入流中跳过并丢弃n个字节的数据
查看源代码:
  FileInputStream这个类的作用就是把文件中的内容读取到程序中去,其中最关键的就是三个read方法,其源码都是通过调用native方法来实现的。
public native int read() throws IOException;
public int read(byte b[]) throws IOException {
return readBytes(b, 0, b.length);
}
public int read(byte b[], int off, int len) throws IOException {
return readBytes(b, off, len);
}
private native int readBytes(byte b[], int off, int len) throws IOException;
public native long skip(long n) throws IOException;
public native int available() throws IOException;
------------------------------------------------------------------------------------------------------------------
FileOutputStream 
类声明:public class FileOutputStream extends OutputStream
位于java.io包下
官方对其说明:
  A file output stream is an output stream for writing data to a File or to a FileDescriptor.
  (简单翻译:FileOutputStream文件输出流失用于将数据写入File或者FileDescriptor的输出流.)
构造方法:
  FileOutputStream(File file);
	    创建一个向指定File对象表示的文件中写入数据的文件输出流。
  FileOutputStream(File file,boolean append);
	    创建一个向指定File对象表示的文件中写入数据的文件输出流。
  FileOutputStream(String name);
	    创建一个向具有指定名称的文件中写入数据的输出文件流。
  FileOutputStream(String name,boolean append);
	    创建一个向具有指定name的文件中写入数据的输出文件流。
  FileOutputStream(FileDescriptor fdObj);
	    通过使用文件描述符fdObj创建一个FileOutputStream实例。
主要方法:
  - void close(): 关闭此文件输出流并释放与该流有关的系统资源.
  - protected void finalize(): 清理文件的链接,确保在不再引用文件输出流时调用其close()方法.
  - void write(byte[] b): 将b.length个字节从指定的字节数组b写入此文件输出流。
  - void write(byte[] b,int off,int len): 将指定的字节数组b从偏移量off开始的len个字节写入此文件输出流。
  - void write(int b): 将指定的字节写入此文件输出流
查看源代码:
  FileOutputStream这个类的作用就是把程序中的字节数据写入到指定的文件中,其中最关键的就是三个write方法,其源码都是通过调用native方法来实现的。
private native void write(int b, boolean append) throws IOException;
public void write(int b) throws IOException {
write(b, append);
}
private native void writeBytes(byte b[], int off, int len, boolean append) throws IOException;
public void write(byte b[]) throws IOException {
writeBytes(b, 0, b.length, append);
}
public void write(byte b[], int off, int len) throws IOException {
writeBytes(b, off, len, append);
}
FileInputStream和FileOutputStream举例: 实现文件的复制.
fileIn.txt文件中的内容:
  abcdefgheretrtrt
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class FileInputOutputStreamDemo { public static void main(String[] args) throws IOException {
//目标文件
File file = new File("fileIn.txt");
//创建FileInputStream实例,该文件通过文件系统中的File对象file指定
FileInputStream fis = new FileInputStream(file); byte[] fileInput = new byte[1024];
int count = 0;
int bytes = fis.read();
//循环将文件fileText.txt中的内容读取到字节数组fileInput中
while(bytes != -1){
fileInput[count++] = (byte)bytes;
bytes = fis.read();
} //输出文件
File fileOutput = new File("fileOut.txt");
if(!fileOutput.exists()){
fileOutput.createNewFile();
}
//创建文件输出流对象
FileOutputStream fos = new FileOutputStream(fileOutput);
//将字节数组fileInput中的内容输出到文件fileOut.txt中
fos.write(fileInput);
}
}
Java字节流:FileInputStream FileOutputStream的更多相关文章
- Java基础  FileInputStream/ FileOutputStream / 字节输入流 字节输出流实现文件的复制
		FileInputStream/FileOutputStream的笔记: /**(FileInputStream/FileOutputStream四个步骤: ①声明②加载地址③read/write④c ... 
- 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝
		两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ... 
- Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1
		1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt -- 读取数据 -- FileInpu ... 
- Java IO(五)字节流 FileInputStream 和 FileOutputStream
		Java IO(五)字节流 FileInputStream 和 FileOutputStream 一.介绍 字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类 ... 
- Java IO 之 FileInputStream & FileOutputStream源码分析
		Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ... 
- Java API —— IO流( FileInputStream & FileOutputStream & BufferedInputStream & BufferedOutputStream )
		1.IO流概述 · IO流用来处理设备之间的数据传输 · 上传文件和下载文件 · Java对数据的操作是通过流的方式 · Java用于操作流的对象都在IO包中 2.IO ... 
- Java修炼——FileInputStream和FileOutputStream
		文件字节流FileInputStream是读文件内容 有一下五个方法 1) abstract int read( ); 2) int read( byte b[ ] ); 3) int read( b ... 
- java中FileInputStream和FileOutputStream对图片操作的例子
		package a.ab; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F ... 
- Java基础知识强化之IO流笔记26:FileInputStream / FileOutputStream 复制mp4视频的案例
		1. 需求:把D:\\English.mp4 复制到当前项目目录下copy.mp4 代码示例: package com.himi.filecopy; import java.io.FileInput ... 
随机推荐
- css-子div设置margin-top后,父div与子div一起下移
			根据海玉的博客 这个问题发生的原因是根据规范,一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠. 再说 ... 
- C# 调用api的方法
			问题场景: ASP.NET MVC Web API 定义 Post 方法,HttpClient 使用 JsonConvert.SerializeObject 传参进行调用,比如 Web Api 中定义 ... 
- dedecms /member/edit_baseinfo.php SQL Injection Vul
			catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link: http:// ... 
- Centos下 为Firefox安装Flash插件
			方法一: 直接到官网去下载RPM格式的安装包,下载好后直接 用 rpm -ivh XXXX.rpm 来安装即可. 方法二: 到官网下载tar.gz格式的,自己配置安装: #wget http://fp ... 
- 如何执行一条命令在C#里面。Process
			Download source - 4.15 KB Introduction It is normal practice to open the Windows command prompt and ... 
- HD1269迷宫城堡(有向图 && 划分连通块)
			迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ... 
- java编程思想-java IO系统
			一.输入和输出 编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. J ... 
- BZOJ3557: [Ctsc2014]随机数
			orz神犇们 clj(pw CCfCtsC2014) zyh cjj pyx vfk 吐槽一句对拍的时候发现这几份代码输出不一样. 每个数看成模2意义下的多项式: \[M_k\equiv x^kM_0 ... 
- 【原】javascript执行环境及作用域
			最近在重读<javascript高级程序设计3>,觉得应该写一些博客记录一下学习的一些知识,不然都忘光啦.今天要总结的是js执行环境和作用域. 首先来说一下执行环境 一.执行环境 书上概念 ... 
- java编解码技术,netty nio
			对于java提供的对象输入输出流ObjectInputStream与ObjectOutputStream,可以直接把java对象作为可存储 的字节数组写入文件,也可以传输到网络上去.对与java开放人 ... 
