Java IO: FileInputStream

FileInputStream可以以字节流的形式读取文件内容。FileInputStream是InputStream的子类,这意味着你可以把FileInputStream当做InputStream使用(FileInputStream与InputStream的行为类似)。

这是一个FileInputStream的例子:

01 InputStream input = new FileInputStream("c:\\data\\input-text.txt");
02  
03 int data = input.read();while(data != -1) {
04  
05     //do something with data...
06  
07     doSomethingWithData(data);
08  
09     data = input.read();
10  
11 }
12  
13 input.close();

请注意,为了清晰,这里忽略了必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理

FileInputStream的read()方法返回读取到的包含一个字节内容的int变量(译者注:0~255)。如果read()方法返回-1,意味着程序已经读到了流的末尾,此时流内已经没有多余的数据可供读取了,你可以关闭流。-1是一个int类型,不是byte类型,这是不一样的。

FileInputStream也有其他的构造函数,允许你通过不同的方式读取文件。请参考官方文档查阅更多信息。

其中一个FileInputStream构造函数取一个File对象替代String对象作为参数。这里是一个使用该构造函数的例子:

1 File file = new File("c:\\data\\input-text.txt");
2  
3 InputStream input = new FileInputStream(file);

至于你该采用参数是String对象还是File对象的构造函数,取决于你当前是否已经拥有一个File对象,也取决于你是否要在打开FileOutputStream之前通过File对象执行某些检查(比如检查文件是否存在)。

时间: 2024-08-02 19:15:46

Java IO: FileInputStream的相关文章

java io学习(六) FileInputStream和FileOutputStream

本章介绍FileInputStream 和 FileOutputStream FileInputStream 和 FileOutputStream 介绍 FileInputStream 是文件输入流,它继承于InputStream. 通常,我们使用FileInputStream从某个文件中获得输入字节. FileOutputStream 是文件输出流,它继承于OutputStream. 通常,我们使用FileOutputStream 将数据写入 File 或 FileDescriptor 的输出

Java IO 之 FileInputStream & FileOutputStream源码分析

Writer      :李强强 一.引子 文件,作为常见的数据源.关于操作文件的字节流就是 - FileInputStream & FileOutputStream.它们是Basic IO字节流中重要的实现类. 二.FileInputStream源码分析 FileInputStream源码如下: /** * FileInputStream 从文件系统的文件中获取输入字节流.文件取决于主机系统. * 比如读取图片等的原始字节流.如果读取字符流,考虑使用 FiLeReader. */ public

java io学习(二十一) FileReader和FileWriter

FileReader和FileWriter源码分析 1. FileReader 源码(基于jdk1.7.40) package java.io; public class FileReader extends InputStreamReader { public FileReader(String fileName) throws FileNotFoundException { super(new FileInputStream(fil java io系列21之 InputStreamReade

java io学习(五) 序列化总结(Serializable 和 Externalizable)

本章,我们对序列化进行深入的学习和探讨.学习内容,包括序列化的作用.用途.用法,以及对实现序列化的2种方式Serializable和Externalizable的深入研究. 1. 序列化是的作用和用途 序列化,就是为了保存对象的状态:而与之对应的反序列化,则可以把保存的对象状态再读出来. 简言之:序列化/反序列化,是Java提供一种专门用于的保存/恢复对象状态的机制. 一般在以下几种情况下,我们可能会用到序列化: a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候: b)当你想用套接

Java:IO操作工具类

[1] String fileReaderStringHandle(String fileName) 将文件(由fileName指定)读入到一个字符串: [2] byte[] fileReaderByteHandle(String fileName) 将文件(由fileName指定)读入到一个字节数组: [3] void fileWriterHandle(String fileName, String text) 将字符串(由text指定)写出到一个文件(由fileName指定). IOUtil

tomcat或jdk版本问题,导致java.io.FileNotFoundException

问题描述 tomcat或jdk版本问题,导致java.io.FileNotFoundException 用apache的httpclient上传文件到另一个服务器,使用tomcat7+jdk1.7当文件名为中文时报下面这个异常,用tomcat7+jdk1.8则不管中英文都会报这个错,用tomcat8+jdk1.8则正常,但是我现在项目里面只能用tomcat7,求朋友们帮助了 java.io.FileNotFoundException: /home/saas/lmsgogogo/.metadata

io流-readUTF()使用报 java.io.EOFException异常

问题描述 readUTF()使用报 java.io.EOFException异常 今天在编程的时候,用到了DataInPutStream类的readUTF()方法时报了个异常,查了好多资料也不能解决,求大神指点啊.高分悬赏. package IO流; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileNotFound

Java IO教程

Java IO 是一套Java用来读写数据(输入和输出)的API.大部分程序都要处理一些输入,并由输入产生一些输出.Java为此提供了java.io包. 如果你浏览下java.io包,会对其中各样的类选择感到迷惑.这些类的作用都是什么?对于某个任务该选择哪个类?怎样创建你自己的类做插件?这个手册的目的就是给你介绍这些类是如何组织的,以及怎样使用他们,因此你就不会疑惑需要时怎样选取合适的类,或者是否有一个满足你需求的类已经存在了. Java.io 包的范围 java.io 包并没有涵盖所有输入输出

java io 根据TXT 在控制台上输出相关表的信息

import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Serializable; import java.text.DecimalFormat; impor