输入流InputStream子类FileInputStream读取文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40969422/article/details/80106769
InputStream:字节输入流(抽象类)--->子类FileInputStream
int read()从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果到了输入流的末尾,返回-1
int read(byte[] b)从输入流读取若干字节,把这些字节保存到数组b中,返回的是读取到的字节数,
如果到了输入流的末尾,返回-1
int read(byte[] b,int off,int len)
从输入流读取若干字节,把这些字节保存到数组b中,off指的是字节数组中开始
保存的起始下标,len指读取的字节数目。返回的是读取到的字节数,如果遇到了输入流的末尾,返回-1
void close()	读完了关闭文件流对象
int available()可以从输入流中读取的字节数目
子类FileInputStream常用的构造方法
FileInputStream(File file)	new的时候传一个文件
FileInputStream(String path)	new的时候传一个路径
package io.cn;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//读取文件E:\JAVA\IOFile\test.HTML中的类容
public class FileInputStreamDemo {
	public static void main(String[] args) {
		FileInputStream file=null;
		
		//输入流FileInputStream
		try {
			//首先要有test.HTML这个文件
			file=new FileInputStream("E:\\JAVA\\IOFile\\test.HTML");
			System.out.println("可读到的字节数:"+file.available());
			//借助输入流的方法read()读取文件,适用于直接在控制台输出
			int data;
			while((data=file.read())!=-1){
				//将字节转换成char,连续输出print不换行
				System.out.print((char)data);
			}
			//借助输入流read(byte[])方法读取文件,即需读又需写这种方式效率更高
/*			byte[] b=new byte[1024];
			while((data=file.read(b))!=-1){
				for(int i=0;i<data;i++){
					System.out.println((char)b[i]);
				}
			}*/
		} catch(FileNotFoundException e){
			e.printStackTrace();
		}
		catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				//关闭输入流
				file.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}


猜你喜欢

转载自blog.csdn.net/weixin_40969422/article/details/80106769
今日推荐