Java全面解析文件读取方法
"Java语言提供了多种方式来读取文件,包括按照字节流、字符流、缓冲区等不同策略。以下是一些常见的Java读取文件的方法: 1. 使用`FileInputStream`读取文件(字节流): - `FileInputStream`是用于处理字节流的,适合读取二进制文件,如图片或音频文件。 - 示例代码展示了如何通过`FileInputStream`逐个字节地读取文件内容。 2. 使用`FileReader`读取文件(字符流): - `FileReader`是`InputStreamReader`的子类,用于读取文本文件,它默认使用系统默认的字符编码。 - 示例代码没有展示`FileReader`,但通常它会与`BufferedReader`一起使用以提高性能。 3. 使用`BufferedReader`读取文件(字符流,带缓冲): - `BufferedReader`通过内部缓冲区提高读取效率,它可以一次读取一行文本。 - 示例代码中没有使用`BufferedReader`,但它是Java读取文件时常用的方法。 4. 使用`RandomAccessFile`读取文件: - `RandomAccessFile`允许随机访问文件的任意位置,适合需要跳过文件某些部分的场景。 - 示例代码没有展示`RandomAccessFile`的用法,但它提供了读写文件的灵活方式。 5. 使用`InputStreamReader`和`BufferedInputStream`组合读取文件(字节流,带缓冲): - 当需要读取二进制文件,但又想利用缓冲提升性能时,可以使用`InputStreamReader`配合`BufferedInputStream`。 6. 使用`Reader`抽象类: - `Reader`是所有字符流的基类,不包含具体的实现,通常会由它的子类如`FileReader`、`BufferedReader`等使用。 在处理文件时,注意异常处理非常重要,如`IOException`。示例代码中,当读取文件或关闭流时可能会抛出此异常,需要进行捕获并妥善处理。同时,确保在读取完成后关闭流,避免资源泄漏。 此外,`showAvailableBytes`方法可能是自定义的方法,用于显示可用字节数,但具体实现未在给出的代码片段中提供。在实际编程中,`FileInputStream.available()`可以用来获取输入流中可以立即读取的字节数,但这并不表示文件的实际剩余字节数。 Java提供了丰富的API来处理文件读取,选择哪种方法取决于具体需求,如文件类型、性能要求以及是否需要随机访问等。在实际开发中,通常会选择使用缓冲机制以提高效率,并结合适当的异常处理确保程序的健壮性。"
一、多种方式读文件内容。
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
Java代码
1.import java.io.BufferedReader;
2.import java.io.File;
3.import java.io.FileInputStream;
4.import java.io.FileReader;
5.import java.io.IOException;
6.import java.io.InputStream;
7.import java.io.InputStreamReader;
8.import java.io.RandomAccessFile;
9.import java.io.Reader;
10.
11.public class ReadFromFile {
12. /**
13. * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
14. *
15. * @param fileName
16. * 文件的名
17. */
18. public static void readFileByBytes(String fileName) {
19. File file = new File(fileName);
20. InputStream in = null;
21. try {
23. // 一次读一个字节
24. in = new FileInputStream(file);
25. int tempbyte;
26. while ((tempbyte = in.read()) != -1) {
27. System.out.write(tempbyte);
28. }
29. in.close();
30. } catch (IOException e) {
31. e.printStackTrace();
32. return;
33. }
34. try {
35. System.out.println("以字节为单位读取文件内容,一次读多个字节:");
36. // 一次读多个字节
37. byte[] tempbytes = new byte[100];
38. int byteread = 0;
39. in = new FileInputStream(fileName);
40. ReadFromFile.showAvailableBytes(in);
41. // 读入多个字节到字节数组中,byteread为一次读入的字节数
42. while ((byteread = in.read(tempbytes)) != -1) {
43. System.out.write(tempbytes, 0, byteread);
44. }
45. } catch (Exception e1) {
46. e1.printStackTrace();
47. } finally {
48. if (in != null) {
49. try {
50. in.close();
51. } catch (IOException e1) {
剩余24页未读,继续阅读
- 粉丝: 0
- 资源: 15
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全