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方法来实现的。

 1 public native int read() throws IOException;
 2 public int read(byte b[]) throws IOException {
 3         return readBytes(b, 0, b.length);
 4     }
 5 public int read(byte b[], int off, int len) throws IOException {
 6         return readBytes(b, off, len);
 7     }
 8 private native int readBytes(byte b[], int off, int len) throws IOException;
 9 public native long skip(long n) throws IOException;
10 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方法来实现的。

 1 private native void write(int b, boolean append) throws IOException;
 2 public void write(int b) throws IOException {
 3         write(b, append);
 4     }
 5 private native void writeBytes(byte b[], int off, int len, boolean append) throws IOException;
 6 public void write(byte b[]) throws IOException {
 7         writeBytes(b, 0, b.length, append);
 8     }
 9 public void write(byte b[], int off, int len) throws IOException {
10         writeBytes(b, off, len, append);
11     }

FileInputStream和FileOutputStream举例: 实现文件的复制.

fileIn.txt文件中的内容:
  abcdefgheretrtrt

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5
 6 public class FileInputOutputStreamDemo {
 7
 8     public static void main(String[] args) throws IOException {
 9         //目标文件
10         File file = new File("fileIn.txt");
11         //创建FileInputStream实例,该文件通过文件系统中的File对象file指定
12         FileInputStream fis = new FileInputStream(file);
13
14         byte[] fileInput = new byte[1024];
15         int count = 0;
16         int bytes = fis.read();
17         //循环将文件fileText.txt中的内容读取到字节数组fileInput中
18         while(bytes != -1){
19             fileInput[count++] = (byte)bytes;
20             bytes = fis.read();
21         }
22
23         //输出文件
24         File fileOutput = new File("fileOut.txt");
25         if(!fileOutput.exists()){
26             fileOutput.createNewFile();
27         }
28         //创建文件输出流对象
29         FileOutputStream fos = new FileOutputStream(fileOutput);
30         //将字节数组fileInput中的内容输出到文件fileOut.txt中
31         fos.write(fileInput);
32     }
33 }
时间: 2024-10-13 01:48:02

Java字节流:FileInputStream FileOutputStream的相关文章

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

1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInputStream (2)目的地:到哪里去 b.txt   --   写数据    --   FileOutputStream 2. 代码示例: 1 package cn.itcast_03; 2 3 import java.io.FileInputStream; 4 import java.io.Fi

Java文件字节流和字符流FileInputStream,FileOutputStream,FileReader,FileWriter

一,文件输入流和文件输出流:FileInputStream,FileOutputStream FileInputStream可以使用read()方法一次读入一个字节,并以int类型返回,或者是使用read()方法时读入至一个byte数组,byte数组的元素有多少个,就读入多少个字节.在将整个文件读取完成或写入完毕的过程中,这么一个byte数组通常被当作缓冲区,因为这么一个byte数组通常扮演承接数据的中间角色. int read();int read(byte b[]);int read(byt

【Java】IO流--文件字节流--FileInputStream、FileOutputStream

FileInputStream 作用: 文件系统中的文件获取输入字节. 什么文件可用取决于主机环境.用于读取诸如图像数据的原始字节流. 构造方法: FileInputStream(File file) 通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名. FileInputStream(String name) 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名. 常用方

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

1.  需求:把D:\\English.mp4 复制到当前项目目录下copy.mp4 代码示例: 1 package com.himi.filecopy; 2 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 /** 8 * 9 * 需求:把D:\\English.mp4 复制到当前项目目录下copy.mp4 10 * 11 */ 12 pu

Java基础知识强化之IO流笔记25:FileInputStream / FileOutputStream 复制图片案例

1.  需求:把D:\\美女.jpg 复制到当前项目目录下mn.jpg 代码示例: 1 package com.himi.filecopy; 2 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 /** 8 * 9 * 需求:把D:\\美女.jpg 复制到当前项目目录下mn,jpg 10 * 11 */ 12 public class Cop

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

1 package a.ab; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 public class ClassA { 9 public static void main(String[] args) { 10 try { 11 FileInputStr

java IO操作:FileInputStream,FileOutputStream,FileReader,FileWriter实例

FileInputStream   <span style="font-family:Verdana;">import java.io.File; import java.io.FileInputStream; import java.io.InputStream; public class TestFileInputStream { public static void main(String[] args) throws Exception { // 异常抛出, 不处理

Java IO: FileInputStream

原文链接 作者: Jakob Jenkov 译者: 李璟([email protected]) FileInputStream可以以字节流的形式读取文件内容.FileInputStream是InputStream的子类,这意味着你可以把FileInputStream当做InputStream使用(FileInputStream与InputStream的行为类似). 这是一个FileInputStream的例子: 01 InputStream input = new FileInputStream

java字节流

/* 字节流 InputStream OutputStream 字节流缓冲区 BufferedInputStream BufferedOutputStream System.out:对应的是标准输出设备,控制台 System.in:对应的标准输入设备,键盘 InputStreamReader:字符流转换为字节流,字节流及其缓冲没有readLine方法,先变为字符流缓冲区 */ package pack; import java.io.BufferedInputStream; import jav