济南做网站公司xywlcnWordPress的手机菜单键
web/
2025/9/27 21:28:32/
文章来源:
济南做网站公司xywlcn,WordPress的手机菜单键,简单免费模板,网站开发需要哪些资料博主18年的互联网软件开发经验#xff0c;从一名程序员小白逐步成为了一名架构师#xff0c;我想通过平台将经验分享给大家#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验#xff0c;晚上进行用心精简、整理、总结、定稿从一名程序员小白逐步成为了一名架构师我想通过平台将经验分享给大家因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验晚上进行用心精简、整理、总结、定稿每天都会整理到12点为了就是能让大家能够真正了解该技术栈的真正原理最终从程序员成为一名真正的架构师写的不一定是全站做好的但是是全站最用心的~。
以后我会推出一些列的文章每天都会更新每天进步一点点发布顺序【java的api基础、应用、实战】-【java开源技术栈及源码分析】-【java开源技术栈整合】-【java低代码开发平台的建设】
一、java.io
1.20 FileInputStream
FileInputStream 是 Java I/O 包中用于从文件中读取数据的类。以下是关于 FileInputStream 的主要信息
FileInputStream 介绍 包路径 java.io 继承关系 FileInputStream 是 InputStream 的子类继承了其所有方法。
FileInputStream 所有字段
FileInputStream 类没有定义自己的字段。
FileInputStream 构造方法 FileInputStream(String name) 创建一个文件输入流以读取指定名称的文件。 FileInputStream(File file) 创建一个文件输入流以读取指定的 File 对象表示的文件。 FileInputStream(FileDescriptor fdObj) 创建一个文件输入流以读取指定的文件描述符表示的文件。
FileInputStream 方法摘要
以下是一些常用的方法完整的方法列表可以参考官方文档。 int read() 从输入流中读取数据的下一个字节。 int read(byte[] b) 从输入流中读取一些字节数并将它们存储到字节数组 b 中。 int read(byte[] b, int off, int len) 从输入流中最多读取 len 个字节的数据到字节数组 b 中从偏移量 off 处开始存储。 long skip(long n) 跳过和丢弃输入流中数据的 n 个字节。 int available() 返回剩余的可以读取的字节数。 void close() 关闭输入流并释放与该流关联的所有系统资源。
简单使用例子
以下是一个简单的使用 FileInputStream 读取文件内容的例子
javaCopy code
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamExample {
public static void main(String[] args) {String filePath example.txt;
try (FileInputStream fis new FileInputStream(filePath)) {int data;while ((data fis.read()) ! -1) {// 处理读取到的字节数据这里简单打印字符System.out.print((char) data);}} catch (IOException e) {e.printStackTrace();}}
}
在这个例子中我们使用 FileInputStream 打开一个文件并通过 read() 方法逐字节读取文件内容。读取的字节数据可以根据需要进行处理这里简单地将其强制转换为字符并打印出来。使用 try-with-resources 语句确保在读取完成后自动关闭文件输入流。
应用场景
介绍
FileInputStream 主要用于从文件中读取数据因此适用于许多场景其中一些包括 文件内容读取 最常见的用途是从文件中读取内容。可以使用 FileInputStream 逐字节或逐块读取文件数据。 文件复制 用于实现文件复制操作通过 FileInputStream 读取源文件的内容然后使用 FileOutputStream 将内容写入目标文件。 文本文件解析 在文本文件中读取数据例如配置文件、日志文件或其他文本格式的数据文件。可以使用 FileInputStream 与 BufferedReader 一起读取文件的文本内容。 字节流处理 用于处理二进制文件如图像、音频或视频文件。可以使用 FileInputStream 读取字节数据并根据需要进行进一步处理。 网络编程 在网络编程中FileInputStream 可用于读取从网络连接接收的数据。例如接收到的数据可能需要保存到文件中。 数据验证 在某些情况下可能需要验证文件的特定部分或完整性。通过使用 FileInputStream 读取文件内容可以进行验证操作。 资源加载 在某些应用程序中可能需要加载外部资源如配置文件或用户数据文件。FileInputStream 可用于加载这些资源的内容。 日志文件分析 用于分析日志文件从中提取信息以进行报告、监控或其他分析。可以使用 FileInputStream 读取日志文件中的数据。 缓存和数据处理 用于将文件内容读取到内存中进行缓存或进一步处理。例如读取图像文件以进行图像处理。 安全性检查 用于执行文件的安全性检查检查文件的内容以确保符合特定的安全标准。
这些只是 FileInputStream 的一些常见应用场景实际上它可以用于许多需要从文件中读取数据的情况。要注意在读取大文件时最好结合使用缓冲流BufferedInputStream以提高性能。
代码及实现
FileInputStream 主要用于从文件中读取数据以下是几种应用场景及相应的简单代码实现事项 文件内容读取和处理 应用场景 读取文件内容并对每个字节进行处理。 代码实现 javaCopy code
try (FileInputStream fis new FileInputStream(example.txt)) {int data;while ((data fis.read()) ! -1) {// 处理每个字节的逻辑}
} catch (IOException e) {e.printStackTrace();
} 事项 需要注意处理每个字节的逻辑例如打印到控制台或存储到数据结构中。 文本文件解析和处理 应用场景 从文本文件中读取数据并进行解析和处理。 代码实现 javaCopy code
try (FileInputStream fis new FileInputStream(data.txt);InputStreamReader isr new InputStreamReader(fis, StandardCharsets.UTF_8);BufferedReader reader new BufferedReader(isr)) {
String line;while ((line reader.readLine()) ! null) {// 处理每行文本的逻辑}
} catch (IOException e) {e.printStackTrace();
} 事项 使用字符流 (InputStreamReader 和 BufferedReader) 进行文本解析以便处理字符串而不是字节。 文件复制 应用场景 复制一个文件到另一个文件。 代码实现 javaCopy code
try (FileInputStream sourceStream new FileInputStream(source.txt);FileOutputStream targetStream new FileOutputStream(target.txt)) {
byte[] buffer new byte[1024];int bytesRead;while ((bytesRead sourceStream.read(buffer)) ! -1) {targetStream.write(buffer, 0, bytesRead);}
} catch (IOException e) {e.printStackTrace();
} 事项 使用缓冲区byte[] buffer以提高文件复制的效率。 网络编程 应用场景 从网络连接中读取数据。 代码实现 javaCopy code
try (Socket socket new Socket(example.com, 8080);InputStream inputStream socket.getInputStream()) {
int data;while ((data inputStream.read()) ! -1) {// 处理从网络接收的字节数据}
} catch (IOException e) {e.printStackTrace();
} 事项 需要适应网络编程的异常处理和连接管理。 资源加载 应用场景 从文件系统加载资源文件到应用程序。 代码实现 javaCopy code
try (FileInputStream fis new FileInputStream(resource.txt)) {// 读取资源文件的逻辑
} catch (IOException e) {e.printStackTrace();
} 事项 资源文件可以是配置文件、模板文件或其他应用程序所需的数据。
这些场景提供了一些基本的用例实际应用中可能涉及更复杂的业务逻辑和异常处理。在所有情况下都需要适当地关闭流以释放资源并注意处理可能的异常情况。
实战例子
让我们考虑一个简单的项目实战例子一个文本文件搜索工具。该工具允许用户输入一个目录路径和一个关键词然后搜索该目录下的所有文本文件找到包含关键词的行并输出匹配的行以及所在文件的信息。
以下是一个简化版本的项目实战代码
javaCopy code
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TextFileSearchTool {
public static void main(String[] args) {Scanner scanner new Scanner(System.in);
// 获取用户输入的目录路径和关键词System.out.print(Enter the directory path to search: );String directoryPath scanner.nextLine();
System.out.print(Enter the keyword to search: );String keyword scanner.nextLine();
// 搜索并输出匹配的行和文件信息searchAndPrintMatches(directoryPath, keyword);}
private static void searchAndPrintMatches(String directoryPath, String keyword) {File directory new File(directoryPath);
// 遍历目录下的所有文本文件ListFile textFiles listTextFiles(directory);
for (File textFile : textFiles) {// 搜索文件中包含关键词的行ListString matchingLines searchKeywordInFile(textFile, keyword);
// 输出匹配的行和文件信息if (!matchingLines.isEmpty()) {System.out.println(Matches found in file: textFile.getName());for (String line : matchingLines) {System.out.println(line);}System.out.println();}}}
private static ListFile listTextFiles(File directory) {ListFile textFiles new ArrayList();
if (directory.isDirectory()) {File[] files directory.listFiles();if (files ! null) {for (File file : files) {if (file.isFile() file.getName().toLowerCase().endsWith(.txt)) {textFiles.add(file);}}}}
return textFiles;}
private static ListString searchKeywordInFile(File file, String keyword) {ListString matchingLines new ArrayList();
try (FileInputStream fis new FileInputStream(file);InputStreamReader isr new InputStreamReader(fis);BufferedReader reader new BufferedReader(isr)) {
String line;int lineNumber 1;while ((line reader.readLine()) ! null) {if (line.toLowerCase().contains(keyword.toLowerCase())) {matchingLines.add(Line lineNumber : line);}lineNumber;}
} catch (IOException e) {e.printStackTrace();}
return matchingLines;}
}
这个例子中我们实现了一个简单的文本文件搜索工具。用户可以输入要搜索的目录路径和关键词。工具会遍历指定目录下的所有文本文件搜索包含关键词的行并输出匹配的行以及所在文件的信息。在实际应用中可能需要添加更多的功能和改进比如支持不同文件类型、多线程搜索等。这个例子提供了一个基本框架你可以根据具体需求进行扩展。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82978.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!