字节流之文件输入流FileInputStream-1
- 它就是IO流(输入流、输出流)
- 又分为字节流,字符流
字节流
1)InputStream、OutputStream
- InputStream抽象了应用程序读取数据的方式
- OutputStream抽象了应用程序写出数据的方式
2)EOF = End读到-1就读到结尾
3)输入流的基本方法(读) - int b = in.read;读取一个字节无符号填充到int的第八位,-1是EOF。
- in.read(byte[] buf);读取数据填充到字节数组buf.
- int.read(byte[] buf,int start,int size);读取数据到字节数组buf从buf的start位置开始,存放size长度的数据。
4)输出流的基本方法 - out.write(int b);写出一个byte到流,b的第八位。
- out.write(byte[] buf)将buf字节数组都写入到流。
- out.write(byte[] buf,int start,int size);字节数组buf从start位置开始写size长度的字节到流。
- FileInputStram ——>具体实现了在文件上读取数据
写一个工具类:IOUtil.java
public class IOUtil{
/*
*读取指定文件内容,按照16进制输出控制台
*并且输出10个byte换行
*/
public static void printHex(String fileName)throws IOException{
//把文件作为字节流进行读操作
FileInputStream in = new FileInputStream(file Name);
int b;
int i = 1;
while((b = in.read())!=-1){
if(b <=0xf){
//单位数前补0
System.out.print(("0");
}
System.out.println(Tnteger.to HexString(b)+" ");//将整型b转换为16进制表示的字符串输出
if(i++%10==0){
System.out,println();
}
}
int close();
}
}
接下来写一个测试类:IOUtilTest1.java
public class IOUtilTest1{
public static void main (String[] args){
try{
IOUtil.printHex("e:\\javaio\\FileUtils.java");
}catch(IOExceorion){
e.printstackTrace();
}
}
}
运行结果