当前位置: 首页 > wzjs >正文

2019年怎么做网站凡科网站设计模板

2019年怎么做网站,凡科网站设计模板,自己怎么创建微信小程序,网络营销应用FileInputStream 详解与记忆方法 一、FileInputStream 核心概念 FileInputStream 是 Java 中用于从文件读取原始字节的类,继承自 InputStream 抽象类。 1. 核心特点 特性说明继承关系InputStream → FileInputStream数据单位字节(8bit)用…

FileInputStream 详解与记忆方法

一、FileInputStream 核心概念

FileInputStream 是 Java 中用于从文件读取原始字节的类,继承自 InputStream 抽象类。

1. 核心特点

特性说明
继承关系InputStream → FileInputStream
数据单位字节(8bit)
用途读取二进制文件(如图片、音频、PDF等)
是否缓冲默认无缓冲(需配合 BufferedInputStream 使用)
线程安全

2. 构造方法

java

// 1. 通过文件路径创建
FileInputStream fis = new FileInputStream("test.txt");// 2. 通过File对象创建
File file = new File("test.txt");
FileInputStream fis = new FileInputStream(file);// 3. 通过文件描述符创建(高级用法)
FileDescriptor fd = new FileDescriptor();
FileInputStream fis = new FileInputStream(fd);

3. 核心方法

方法作用
int read()读取单个字节(返回0-255,-1表示结束),调用一次read()方法则读取一个字节,返回读到的字节本身。(例如,信息为a,则返回一个97),如果读不到任何数据则返回-1
int read(byte[] b)读取字节到数组,返回实际读取的字节数(一次最多读取到b.length个字节)
int read(byte[] b, int off, int len)从偏移量off开始读取len个字节到数组
long skip(long n)跳过n个字节
void close()关闭流
FileChannel getChannel()获取关联的FileChannel(NIO相关)
int    available()     返回预估计流当中剩余的字节数量(意思就是:还剩下几个字节没有读取)

二、使用示例

1. 基础读取文件

java

try (FileInputStream fis = new FileInputStream("data.bin")) {int data;while ((data = fis.read()) != -1) {  // 每次读取1字节System.out.print((char) data);   // 转为字符输出(仅适用于文本)}
} // try-with-resources自动关闭流

2. 高效读取(缓冲区)

java

try (FileInputStream fis = new FileInputStream("largefile.bin");BufferedInputStream bis = new BufferedInputStream(fis)) { // 添加缓冲byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = bis.read(buffer)) != -1) {// 处理buffer中的数据}
}

3. 读取到字节数组

java

File file = new File("data.bin");
byte[] fileData = new byte[(int) file.length()];
try (FileInputStream fis = new FileInputStream(file)) {fis.read(fileData); // 一次性读取全部内容
}

三、记忆技巧

1. 名称解析法

"File + Input + Stream"

  • File:操作文件

  • Input:输入(读取)

  • Stream:字节流

2. 对比记忆法

对比类方向数据单位典型用途
FileInputStream读取字节图片、压缩包等二进制文件
FileOutputStream写入字节文件下载、数据存储
FileReader读取字符文本文件(自动处理编码)

3. 使用场景联想

  • 图片处理FileInputStream + ImageIO.read()

  • 文件复制FileInputStream + FileOutputStream

  • 加密解密:读取原始字节后进行加密运算

4. 常见误区提醒

❌ 错误用法:直接读取文本文件(可能乱码)
✅ 正确做法:文本文件应使用 FileReader 或 InputStreamReader


四、面试高频问题

1. FileInputStream 和 BufferedInputStream 的区别?

  • FileInputStream:每次read()直接访问磁盘,性能低

  • BufferedInputStream:内置缓冲区(默认8KB),减少磁盘IO次数

2. 为什么读取文件要用 try-with-resources?

  • 自动关闭资源:避免忘记调用close()导致文件句柄泄漏

  • 代码简洁:不需要手动写finally

3. 如何高效读取大文件?

java

// 方案1:使用缓冲流
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("large.bin"))) {byte[] buffer = new byte[8192];  // 8KB缓冲区while (bis.read(buffer) != -1) {// 处理数据}
}// 方案2:使用NIO的FileChannel(超大文件更高效)

4. read() 方法返回值的含义?

  • 返回int:0-255表示字节值,-1表示文件结束

  • 注意:必须用int接收,byte会无法区分-1和255


五、总结图示

mermaid

flowchart TDA[FileInputStream] --> B[读取二进制文件]A --> C[核心方法: read/skip/close]A --> D[需配合缓冲流提升性能]B --> E[图片/音频/PDF等]D --> F[BufferedInputStream]

一句话总结
"FileInputStream读字节,无缓冲性能低,文本文件别用它,记得关闭保安全"

http://www.dtcms.com/wzjs/557654.html

相关文章:

  • 公司网站开发费用记入什么科止塑胶加工东莞网站建设技术支持
  • 医院做网站备案需要哪些资料微信小程序二维码
  • 织梦后台怎么建设网站网站开发(定制)合同 模板
  • 网站建设需求分析报告撰写揭阳东莞网站建设
  • 宁波网站建设最好东莞网站建设网
  • 六安网站建设招聘营销技巧第三季在线观看
  • 免费企业网站后台网店设计方案范文
  • 途牛网站建设功能需求分析北京网站建设联系电话
  • 书店网站建设的设计报告有哪些做公司网站
  • 一个网站的制作步骤深汕特别合作区机关事业单位
  • 黄金网站江西专业的企业网站建设公司
  • 网站运营公司外国网站打开很慢
  • 个人搭建网站要多少钱芜湖公司做网站
  • 平阳高端网站建设网站域名批量查询注册
  • 宿迁网站公众号怎么制作投票
  • 大型网站开发技术响应式企业官网
  • 公司建立网站的意义wordpress很安全
  • 如何成立一个网站网页设计和网站建设实战大全
  • 怎样制作购物网站 微信转发wordpress插件吧
  • 一个单位网站被黑该怎么做crm开发
  • 建站培训单位写材料素材网站
  • 怎样弄一个自己的网站网站的排名就是友情链接
  • 合肥网络公司注册外贸谷歌seo
  • 壹像素网站快速微信网站建设
  • 中信建设有限责任公司网站建高铁站赚钱吗
  • 网站和服务器的关系苏州网站开发公司兴田德润在哪儿
  • 网站 提示危险wordpress cg主题
  • 太原建网站公司阿里云网站备案要多久
  • 免费网站后台管理系统模板编写一个android应用程序
  • 网站开发描述贵阳公司网站建设