ava中的文件操作、IO流、递归和字符集
目录
File类的使用
创建File对象
创建和删除文件
遍历文件夹
IO流
字节流
读取文件
字符流
读取文本文件
写入文本文件
递归
计算阶乘
文件搜索
字符集
编码与解码
File类的使用
在Java中,File类用于表示文件和目录的路径。它提供了一些方法来创建、删除、获取文件信息等操作,但不能直接用于读写文件内容。
创建File对象
import java.io.File;public class FileExample {public static void main(String[] args) {// 创建File对象File file = new File("example.txt");// 判断文件是否存在if (file.exists()) {System.out.println("文件存在");} else {System.out.println("文件不存在");}}
}
在上面的代码中,我们使用File类来检查一个文件是否存在。
创建和删除文件
import java.io.File;
import java.io.IOException;public class CreateDeleteFile {public static void main(String[] args) {File file = new File("example.txt");try {// 创建新文件if (file.createNewFile()) {System.out.println("文件已创建");} else {System.out.println("文件已存在");}// 删除文件if (file.delete()) {System.out.println("文件已删除");} else {System.out.println("删除文件失败");}} catch (IOException e) {e.printStackTrace();}}
}
这段代码展示了如何创建和删除文件。使用createNewFile()方法创建文件,使用delete()方法删除文件。
遍历文件夹
import java.io.File;public class ListFiles {public static void main(String[] args) {File dir = new File("path/to/directory");// 列出目录中的文件和目录String[] files = dir.list();if (files != null) {for (String file : files) {System.out.println(file);}}}
}
使用list()方法可以遍历指定目录下的所有文件和文件夹。
IO流
IO流是Java中用于处理输入和输出的类,包括字节流和字符流。
字节流
字节流用于处理字节数据,可以用于读取和写入二进制数据。
读取文件
import java.io.FileInputStream;
import java.io.IOException;public class ByteInputStreamExample {public static void main(String[] args) {try (FileInputStream fis = new FileInputStream("example.txt")) {int content;while ((content = fis.read()) != -1) {System.out.print((char) content);}} catch (IOException e) {e.printStackTrace();}}
}
上面的代码使用FileInputStream读取文件的字节内容并输出。
import java.io.FileOutputStream;
import java.io.IOException;public class ByteOutputStreamExample {public static void main(String[] args) {try (FileOutputStream fos = new FileOutputStream("example.txt")) {String data = "Hello, World!";fos.write(data.getBytes());} catch (IOException e) {e.printStackTrace();}}
}
使用FileOutputStream将字符串写入文件中。
字符流
字符流用于处理字符数据,适合处理文本文件。
读取文本文件
import java.io.FileReader;
import java.io.IOException;public class CharInputStreamExample {public static void main(String[] args) {try (FileReader fr = new FileReader("example.txt")) {int content;while ((content = fr.read()) != -1) {System.out.print((char) content);}} catch (IOException e) {e.printStackTrace();}}
}
FileReader用于读取文本文件中的字符数据。
写入文本文件
import java.io.FileWriter;
import java.io.IOException;public class CharOutputStreamExample {public static void main(String[] args) {try (FileWriter fw = new FileWriter("example.txt")) {fw.write("Hello, World!");} catch (IOException e) {e.printStackTrace();}}
}
递归
递归是一种解决问题的方法,其中函数会直接或间接调用自身。
计算阶乘
public class Factorial {public static void main(String[] args) {int number = 5;System.out.println(number + "的阶乘是:" + factorial(number));}public static int factorial(int n) {if (n == 1) {return 1;} else {return n * factorial(n - 1);}}
}
上面的递归方法计算一个数字的阶乘。
文件搜索
import java.io.File;public class FileSearch {public static void main(String[] args) {File dir = new File("path/to/search");String filename = "target.txt";searchFile(dir, filename);}public static void searchFile(File dir, String filename) {if (dir.isDirectory()) {File[] files = dir.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {searchFile(file, filename);} else if (file.getName().equals(filename)) {System.out.println("找到文件:" + file.getAbsolutePath());}}}}}
}
递归用于在指定目录及其子目录中搜索目标文件。
字符集
字符集是字符和字节之间转换的规则。在Java中,常用的字符集包括ASCII、GBK和UTF-8。
编码与解码
import java.nio.charset.StandardCharsets;
import java.util.Arrays;public class CharsetExample {public static void main(String[] args) {String text = "Hello, 世界";// 编码byte[] utf8Bytes = text.getBytes(StandardCharsets.UTF_8);System.out.println("UTF-8 编码: " + Arrays.toString(utf8Bytes));// 解码String decodedText = new String(utf8Bytes, StandardCharsets.UTF_8);System.out.println("解码后的字符串: " + decodedText);}
}
这段代码展示了如何使用UTF-8字符集对字符串进行编码和解码。
通过这些示例,您可以理解如何在Java中使用文件操作、IO流、递归和字符集。这些技术是处理文件和数据的基础,了解它们可以帮助您开发更强大和灵活的应用程序。
相关文章:
ava中的文件操作、IO流、递归和字符集
目录 File类的使用 创建File对象 创建和删除文件 遍历文件夹 IO流 字节流 读取文件 字符流 读取文本文件 写入文本文件 递归 计算阶乘 文件搜索 字符集 编码与解码 File类的使用 在Java中,File类用于表示文件和目录的路径。它提供了一些方法来创建、删…...
生成式人工智能安全评估体系构建
文章目录 前言一、人工智能安全治理的现状1.1 国际安全治理现状1.2 国内安全治理现状二、构建人工智能安全评估体系1.1 需要对生成式人工智能技术的安全性、可靠性、可控性、公平性等维度进行全面的考量。1.2 应对生成式人工智能全维度风险。1.3 在体系化应对框架中,应明确法律…...
NRBO-XGBoost分类 基于牛顿-拉夫逊优化算法[24年最新算法]-XGBoost多特征分类预测+交叉验证
NRBO-XGBoost分类 基于牛顿-拉夫逊优化算法[24年最新算法]-XGBoost多特征分类预测交叉验证 多输入单输出) matlab代码 程序已调试好,无需更改代码替换数据直接使用!!!数据格式为excel格式!需要定制可私&a…...
synchronized实现原理及优化
一、概述 线程安全在并发编程中是重要关注点,造成线程安全问题的主要诱因有两个:一是存在共享数据(也称临界资源),二是存在多个线程共同操作共享数据。synchronized关键字能够保证在同一时刻只有一个线程可以执行某个…...
NLP 之词的表示与语言模型
表示的基本原理: 机器无法理解文字,却能进行复杂的数学运算——神经网络只要够深、够复杂,就能拟合足够复杂的数学模式。把文字嵌入(embed)到一个向量空间中去。 词表示(Word Representation)…...
每天一个数据分析题(四百七十一)- 假设检验
下列对假设检验的描述合理的是? A. 备择假设是研究者想收集证据予以支持的假设 B. 原假设是研究者想收集证据予以推翻的假设 C. 原假设是研究者想收集证据予以支持的假设 D. 备择假设是研究者想收集证据予以推翻的假设 数据分析认证考试介绍:点击进入 题目来…...
《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-04-数据访问层设计
文章目录 1. 五种数据访问模式1.1 在线访问1.2 DAO1.3 DTO1.4 离线数据模式1.5 对象/关系映射 (O/R Mapping) 2. 工厂方法模式在数据访问层应用3 ORM、Hibernate与CMP2.0设计思想3.1 ORM3.2 Hibernate1)概述2) Hibernate的架构(2023年的考题&…...
【视觉SLAM】 十四讲ch7习题
简介 本文主要内容是《视觉SLAM十四讲》(第二版)第7章的习题解答,并介绍了在解答习题中的一下思考和总结的经验。本文代码部分参考了:HW-of-SLAMBOOK2 1、除了本书介绍的ORB特征点,你还能找到哪些特征点?…...
K-近邻算法(二)
三、 kd 树 问题导⼊: 实现k 近邻算法时, 主要考虑的问题是如何对训练数据进⾏快速 k 近邻搜索。这在特征空间的维数⼤及训练数据容量⼤时尤其必要。 k 近邻法最简单的实现是线性扫描(穷举搜索),即要计算输⼊实例与…...
WPF学习(2)-UniformGrid控件(均分布局)+StackPanel控件(栈式布局)
UniformGrid控件(均分布局) UniformGrid和Grid有些相似,只不过UniformGrid的每个单元格面积都是相等的,不管是横向的单元格,或是纵向的单元格,它们会平分整个UniformGrid。 UniformGrid控件提供了3个属性…...
ANTSDR E310
ANTSDR E310是一款由微相科技有限公司(MicroPhase)推出的软件无线电(SDR)平台,专为现场部署设计。以下是对ANTSDR E310的详细介绍: 一、主要特点 独立运行的软件无线电:ANTSDR E310具备独立运…...
MySQL 5.7 DDL 与 GH-OST 对比分析
作者:来自 vivo 互联网存储研发团队- Xia Qianyong 本文首先介绍MySQL 5.7 DDL以及GH-OST的原理,然后从效率、空间占用、锁阻塞、binlog日志产生量、主备延时等方面,对比GH-OST和MySQL5.7 DDL的差异。 一、背景介绍 在 MySQL 数据库中&…...
【Python】爬取网易新闻今日热点列表数据并导出
1. 需求 从网易新闻的科技模块爬取今日热点的列表数据,其中包括标题、图片、标签、发表时间、路径、详细文本内容,最后导出这些列表数据到Excel中。 网易科技新闻网址:https://tech.163.com 2. 解决步骤 2.1 前期准备 爬虫脚本中需要引用…...
软件设计之HTML5
软件设计之HTML5 【狂神说Java】HTML5完整教学通俗易懂 学习内容: 软件开发技能点参照:软件开发,小白变大佬,这套学习路线让你少走弯路是认真的,欢迎讨论 软件开发技能点参照:Java学习完整路线ÿ…...
CnosDB 元数据集群 – 分布式时序数据库的大脑
CnosDB 是一个分布式时序数据库系统,其中元数据集群是核心组件之一,负责管理整个集群的元数据信息。 1. 概述 CnosDB 是一个分布式时序数据库系统,其中元数据集群是核心组件之一,负责管理整个集群的元数据信息。元数据包括数据库…...
白骑士的Matlab教学进阶篇 2.5 Simulink
Simulink是MATLAB的扩展工具,提供了一个图形化的建模和仿真环境。它广泛应用于系统设计、仿真、自动控制、信号处理等领域。本文将详细介绍Simulink的简介与基本使用、建立与仿真模型、控制系统设计与仿真、与MATLAB的集成。 Simulink简介与基本使用 什么是Simuli…...
linux安装anaconda
参考 如何在Linux服务器上安装Anaconda(超详细)_linux安装anconda-CSDN博客 官网 Index of / 安装网站 https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Lin…...
python装饰器作用和使用场景
当谈到装饰器时,很多初学者很迷糊,有一个经典的例子可以帮助理解它们的作用。装饰器允许你在不修改函数代码的情况下,动态地改变函数的行为。 一、用法 假设我们有一个简单的函数,用来输出一条简单的问候语: 复制代码…...
Apache Tomcat 7下载、安装、环境变量配置 详细教程
Apache Tomcat 7下载、安装、环境变量配置 详细教程 Apache Tomcat 7下载Apache Tomcat 7 安装Apache Tomcat 7 环境变量配置启动 Apache Tomcat 7测试Tomcat7是否启动成功 Apache Tomcat 7下载 1、下载地址,找到Archives 链接: 官网下载地址 2、找到Tomcat 7&…...
SQL注入实例(sqli-labs/less-20)
0、初始页面 1、确定闭合字符 2、爆库名 3、爆表名 4、爆列名 5、查询最终目标...
OpenClaw监控告警方案:Qwen3-14B驱动服务器异常检测
OpenClaw监控告警方案:Qwen3-14B驱动服务器异常检测 1. 为什么需要智能化的服务器监控 作为个人站长,我经历过太多次深夜被服务器宕机惊醒的噩梦。传统监控工具要么配置复杂(比如PrometheusGrafana全家桶),要么告警方…...
ABAP事务控制深度指南:如何避免COMMIT WORK导致的BW数据丢失问题
ABAP事务控制深度指南:如何避免COMMIT WORK导致的BW数据丢失问题 在SAP BW项目实施过程中,数据完整性是每个ABAP开发者的核心关切。我曾亲眼目睹一个关键财务月结报表因为异步提交导致数据缺失,最终引发连锁反应——财务团队不得不通宵重新跑…...
OpenClaw开源贡献:为Qwen3.5-9B编写自定义技能指南
OpenClaw开源贡献:为Qwen3.5-9B编写自定义技能指南 1. 为什么要为OpenClaw开发自定义技能 去年冬天,当我第一次尝试用OpenClaw自动整理电脑上堆积如山的会议录音时,发现现有的技能库无法满足我的个性化需求。这促使我深入研究如何为这个开源…...
Fix-Kindle-Ebook-Cover彻底解决Kindle电子书封面丢失问题:从根源修复到长效管理
Fix-Kindle-Ebook-Cover彻底解决Kindle电子书封面丢失问题:从根源修复到长效管理 【免费下载链接】Fix-Kindle-Ebook-Cover A tool to fix damaged cover of Kindle ebook. 项目地址: https://gitcode.com/gh_mirrors/fi/Fix-Kindle-Ebook-Cover Kindle电子书…...
Cogito-v1-preview-llama-3B企业应用:中小开发者低成本接入混合推理AI方案
Cogito-v1-preview-llama-3B企业应用:中小开发者低成本接入混合推理AI方案 1. 引言:当小团队也想用上“会思考”的AI 如果你是一个中小型开发团队的负责人,或者是一个独立开发者,最近可能经常听到这样的讨论:“某某大…...
OpenClaw故障诊断:Qwen3.5-9B接口超时问题排查实录
OpenClaw故障诊断:Qwen3.5-9B接口超时问题排查实录 1. 问题现象与初步判断 那天深夜,我正在调试一个自动化文档处理流程,OpenClaw突然开始频繁报错。控制台不断弹出"Model timeout after 30000ms"的警告,原本10秒内能…...
告别抓瞎!手把手教你用Wireshark解密TLS 1.3流量(附SSLKEYLOGFILE环境变量配置)
从密文到明文:实战解密TLS 1.3流量的完整指南 当你在调试一个API接口时,发现请求总是返回异常状态码,但查看Wireshark抓包却只能看到一堆加密的TLS 1.3数据包,这种"睁眼瞎"的感觉确实令人沮丧。TLS 1.3作为目前最安全的…...
测试小白福音:在快马上通过实战代码轻松攻克软件测试面试题
作为一名刚入门的软件测试新手,面对各种面试题时常常感到一头雾水。最近我发现了一个特别实用的学习方法 - 通过动手实践来理解测试理论。今天就来分享一下我的经验。 从基础概念入手 刚开始学习时,我连黑盒测试和白盒测试的区别都搞不清楚。后来发现&…...
Flutter鸿蒙应用集成图片加载与缓存功能
🔥Flutter鸿蒙应用集成图片加载与缓存功能(macOSDevEco Studio) 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net📄 文章摘要 本文为Flutter for OpenHarmony 跨平台应用开发系列实战文章&…...
Vibe Coding 工具实战案例全解:Cursor、Claude Code、Codex 真实项目 30 分钟到 4 小时快速构建指南(2026 年最新)
Vibe Coding 工具实战案例(2026 年最新)以下是 3 个真实可复现的 Vibe Coding 实战案例,覆盖主流工具(Cursor、Claude Code、OpenAI Codex),从简单入门到中大型项目。每个案例都包含: 项目场景 核心 Prompt 示例 完整操作流程 实际效果 + 耗时 关键技巧(避坑) 这些案例…...
