字节(Byte)是进行I/O操作的基本数据单位,在程序进行字节数据读取时可以使用java.io.InputputStream类完成,此类定义如下:
public abstract class InputputStream
extends Object
implements Closeable
【关闭】
InputStream类中提供的主要方法为read(),可以实现单个字节或一组字节数据的读取操作。
InputStream属于抽象类,对于文件的读取可以通过FileInputStream子类来进行实例化。
1、使用InputStream类读取文件内容的例子:
package com.mydemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
public class FileIODemo {
public static void main(String[] args) {
File file = new File("e:" + File.separator + "test" + File.separator + "text.txt");
// 判断该文件是否存在
if (file.exists()) {
try {
// 文件输入流
InputStream inputStream = new FileInputStream(file);
/**
* 读取一组
*/
// 数据读取缓冲区
byte data[] = new byte[1024];
// 读取数据,将数据读取到缓冲区中,同时返回读取的字节个数
int byteLen = inputStream.read(data);
/**
* 全部读取
* JDK9开始支持
*/
// byte data[] = inputStream.readAllBytes();
/**
* 将字节转为字符串
*
* new String(bytes, offset, length)
* bytes为要解译的字符串;
* offset为要解译的第一个索引,比如从0开始就是从字符串bytes的第一个字符开始;
* length为要解译的字符串bytes的长度
*/
String str = new String(data, 0, byteLen);
// 打印输出
System.out.println(str);
// 关闭输入流
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}