FileInputStream 类从文件中读取数据。它有以下构造方法:
FileInputStream(File file)--------参数file指定文件的数据源
FileInputStream(String name)-------- 参数name指定文件数据源。在参数name中包含了文件路径信息。
下面这个FileInputStreamTester类读取test.txt文件中的内容。
package xiaohang.com;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamTester {
public static void main(String[] args) throws IOException {
FileInputStream in = new FileInputStream("D:\\test.txt");
int data;
while ((data = in.read()) != -1) {
System.out.println(data + " ");
}
// 关闭此文件输入流并释放与此流有关的所有系统资源
in.close();
}
}
假定在 test.txt文件中包含的字符串为"abc1好" ,并且假定文件所在的操作系统的默认字符编码为GBK, 那么在文件中实际存放的是这5个字符的GBK 字符编码, 字符"a"、"b"、"c"、 和 "1" 的GBK字符编码各占一个字节,分别是97、98、99和49。“好”的GBK字符编码占2个字节,为186和195。文件输入流的read()方法每次读取一个字节,因此以上程序打印的结果为:
如果文件很大,为了提高效率,可以使用read(byte[] buff)方法,它能减少物理文件的次数。下面这个UseBuffer类的main()方法把test.txt 中数据拷贝到out.txt中。在进行读写操作时,都使用了字节数组缓冲区,每次最多读写1024个字节。
package xiaohang.com;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class UseBuffer {
public static void main(String[] args) throws IOException {
final int SIZE=1024;
FileInputStream in = new FileInputStream("D:\\test.txt");
FileOutputStream out = new FileOutputStream("D:\\out.txt");
//创建字节数组缓冲区
byte[] buff = new byte[SIZE];
//把test.txt文件中的数据读入到buff中
int len = in.read(buff);
while (len!=-1) {
//把buff中的数据写到out.txt文件中
out.write(buff, 0, len);
//从新读取输入流,此时已到达输入流的结尾
len=in.read();
}
in.close();
out.close();
}
}
如果test.txt文件与UseBuffer类的 .class 文件位于同一目录下,也可以通过Class类的getResourceAsStream()方法来获得输入流,例如:
InputStream in = UseBuffer.class.getResourceAsStream("test.txt");//适用于静态方法或实例方法
//或者:
InputStream in = this.getClass().getResourceAsStream("test.txt"); //适用于实例方法
以上方法的好处在于只提供test.txt文件的相对路径。
- 大小: 8.5 KB
分享到:
相关推荐
//打开需压缩文件作为文件输入流 FileInputStream fin=new FileInputStream(args[0]); //建立压缩文件输出流 FileOutputStream fout=new FileOutputStream(args[1]); //建立gzip压缩输出流 GZIPOutputStream ...
7.2.3文件输入流FileInputStream239 7.2.4文件输出流FileOutputStream239 7.2.5保存用户输入到文件240 7.2.6显示文件内容241 7.2.7文件的复制243 7.2.8顺序输入流244 7.2.9管道输入输出流246 7.2.10过滤输入...
FileInputStream的用法1---马克-to-win java视频文件输入流
文件字节输入流,里面有文件字节输入流的相关要点以及经典案例
Java生成 数字证书源码,从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂,获取证书,请查看以下相关代码: //生成文件输入流,输入文件为c:/mycert.cer ...
基本文件存储 创建一个文件(写操作): openFileOutput() 写操作文件打开方式 FileOutputStream 安卓文件输出流 读取文件内容 openFileInput() 读操作文件打开方式 FileInputStream 安卓文件输入流 实验 有序广播...
Java Zip算法压缩多个文件的例子,具体的实现原理是:先打开文件并读取,然后利用ZipEntry实例化待压缩的条目列表,将ZIP条目列表写入输出流,从源文件得到文件输入流,写入缓冲数据等。相关代码: ...
FileInputStream 是文件输入流,它继承于InputStream。 通常,我们使用FileInputStream从某个文件中获得输入字节。 FileOutputStream 是文件输出流,它继承于OutputStream。 通常,我们使用FileOutputStream 将数据...
1.2 文件流 1.2.1 FileInputStream(文件字节输入流) 1.2.2 FileOutputStream(文件字节输出流)
FileInputStream的用法2---马克-to-win java视频文件输入流的介绍
//创建一个输入流 FileInputStream fileInputStream; try { fileInputStream = new FileInputStream(mp3); //创建一个缓冲流 BufferedInputStream bufferedInputStream = ...
通过输入输出流FileInputStream FileoutputStream 将本地文件复制并进行^的加密。
//从源文件得到文件输入流 FileOutputStream fout=new FileOutputStream(target); //得到目标文件输出流 CNZipOutputStream cnout=new CNZipOutputStream(fout,"GB2312"); //得到压缩输出流 String filename=...
//得到文件输入流 FileOutputStream fout=new FileOutputStream(fileOut); //得到文件输出流 byte[] bytes=new byte[1024]; //初始化字节数组,用于缓冲 int c; while((c=fin.read(bytes))!=-1)...
// 新建文件输入流并对它进行缓冲 FileInputStream input = new FileInputStream(sourceFile); BufferedInputStream inBuff=new BufferedInputStream(input); // 新建文件输出流并对它进行缓冲 ...
1.1 文件操作输入字节流 ileInputStream 文件操作输入字节流 Constructor 构造方法 FileInputStream(File file); 这里是根据提供的File类对象创建对应的文件操作输入字节流。 FileInputStream(String pathName);...
对SWT/Jface的进度条(ProgressMonitorDialog)进行封装,使下载文件更方便调用. DownloadProgressBar 是单个文件下载...多文件下载传入输入流数组,输出流数组(或目标文件数组)便可自动下载. 下载资源后,请自动更改包名.
以字节为单位读取文件、以字符为单位读取文件、以行为单位读取文件、随机读取文件内容、显示输入流中还剩的字节数、追加文件 FileInputStream、AppendToFile、 RandomAccessFile 、InputStreamReader
|--FileInputStream/:文件输入流。从文件系统中的某个文件中获得输入字节。用于读取图像,声音,视频等数据类的原始字节流。 | |--FilterInputStream/:包含一些输入流,将这些流用作其基本数据源,可以直接传输...
文件流操作:使用Java的文件输入输出流(FileInputStream、FileOutputStream)读取和写入文件内容。 多线程处理:通过多线程实现并发处理多个文件传输请求,提高传输效率。 异常处理:处理网络异常、文件读写异常等...