-----------------------------------------------------------------------------------

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的更多相关文章

  1. Java基础 FileInputStream/ FileOutputStream / 字节输入流 字节输出流实现文件的复制

    FileInputStream/FileOutputStream的笔记: /**(FileInputStream/FileOutputStream四个步骤: ①声明②加载地址③read/write④c ...

  2. 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝

    两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ...

  3. Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1

    1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInpu ...

  4. Java IO(五)字节流 FileInputStream 和 FileOutputStream

    Java IO(五)字节流 FileInputStream 和 FileOutputStream 一.介绍 字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类 ...

  5. Java IO 之 FileInputStream & FileOutputStream源码分析

    Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter   ...

  6. Java API —— IO流( FileInputStream & FileOutputStream & BufferedInputStream & BufferedOutputStream )

    1.IO流概述 · IO流用来处理设备之间的数据传输        · 上传文件和下载文件        · Java对数据的操作是通过流的方式 · Java用于操作流的对象都在IO包中   2.IO ...

  7. Java修炼——FileInputStream和FileOutputStream

    文件字节流FileInputStream是读文件内容 有一下五个方法 1) abstract int read( ); 2) int read( byte b[ ] ); 3) int read( b ...

  8. java中FileInputStream和FileOutputStream对图片操作的例子

    package a.ab; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F ...

  9. Java基础知识强化之IO流笔记26:FileInputStream / FileOutputStream 复制mp4视频的案例

    1.  需求:把D:\\English.mp4 复制到当前项目目录下copy.mp4 代码示例: package com.himi.filecopy; import java.io.FileInput ...

随机推荐

  1. Linux/Windows下如何退出telnet

    [Ctrl+]]->[quit] linux下和windows上一样

  2. 洛谷P1209 [USACO1.3]修理牛棚 Barn Repair

    题目描述 在一个夜黑风高,下着暴风雨的夜晚,farmer John的牛棚的屋顶.门被吹飞了. 好在许多牛正在度假,所以牛棚没有住满. 牛棚一个紧挨着另一个被排成一行,牛就住在里面过夜. 有些牛棚里有牛 ...

  3. PHP FastCGI RCE Vul

    catalog . Introduction . nginx文件类型错误解析漏洞 . 针对直接公网开放的Fast-CGI攻击 . 通过FCGI API动态修改php.ini中的配置实现RCE 1. I ...

  4. mysql简单操作(实时更新)

    从表中删除某条记录: delete from table_name where xx=xxxx; 创建数据库(注意不同系统对大小写的敏感性): create database xxx; 查看数据库列表 ...

  5. cookie的实例

    使得Cookie简化用户登陆,要求如下: 1.用户第一次登陆时需要输入用户名和密码 2.当登陆成功后,在Cookie中保存用户的登陆信息 3.设置Cookie有效期为5分钟 4.在有效期内用户再次登陆 ...

  6. 【Alpha版本】 第六天 11.14

    一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 完成管理员的三大界面框架.完成管理主界面 完成我要招聘的招聘详情显 ...

  7. Nginx系列1之部分模块详解

    1 内核模块: 名称: daemon 语法: daemon on |off 默认值: on 功能: 决定nginx 在前台执行还是后台守护进程执行的 ================== 名称: En ...

  8. photoshop切图介绍

    第一部分:界面设置 1.点击“文件-新建”(或者ctrl+n)打开一个新建对话框.名称可随意填写.“预设”设置为自定,“宽度”一般选择1920,“单位”选为像素.“高度”可选择为2000,“单位”选为 ...

  9. 将一个tabel加到另一个table

    DataTable rate = GetRate(str_catchType,); dt.Merge(rate);//将两个table合并

  10. mysql主从复制 转

    mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复.需要两台机器,安装mysql,两台机器要在相通的局域网内,可以分布在不同的服务器上,也可以在一台服务器上启动多个服务 ...