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、查询最终目标...
Linux Shell面试题大全及参考答案(3万字长文)
目录 解释Shell脚本是什么以及它的主要用途 主要用途 Shell脚本中的注释如何编写? 如何在Shell脚本中定义和使用变量? Shell支持哪些数据类型? 什么是Shell的命令替换?请举例说明。 管道(pipe)和重定向(redirection)有什么区别? 如何在Shell脚本中使用条件语句…...
速盾:cdn优化静态资源加载速度机制
CDN(Content Delivery Network)是一种优化静态资源加载速度的机制。它通过在全球多个地点部署服务器,将静态资源缓存到离用户最近的服务器上,从而提高资源加载速度。 在传统的网络架构中,当用户访问一个网站时&#x…...

04.C++类和对象(中)
1.类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重…...
【代码随想录训练营第42期 Day23打卡 回溯Part2 - LeetCode 39. 组合总和 40.组合总和II 131.分割回文串
目录 一、做题心得 二、题目与题解 题目一:39. 组合总和 题目链接 题解:回溯 题目二:40.组合总和II 题目链接 题解:回溯 题目三:131.分割回文串 题目链接 题解:回溯 三、小结 一、做题心得 今天是代码随想录…...

书生.浦江大模型实战训练营——(三)Git基本操作与分支管理
最近在学习书生.浦江大模型实战训练营,所有课程都免费,以关卡的形式学习,也比较有意思,提供免费的算力实战,真的很不错(无广)!欢迎大家一起学习,打开LLM探索大门…...

数据可视化Axure大屏原型制作分享
数据可视化大屏通过清晰、直观且易于理解的方式呈现大量复杂数据,已成为各行各业中不可或缺的工具。Axure作为一款功能强大的原型设计工具,为数据可视化大屏的制作提供了强大的支持和丰富的资源。 Axure RP 是一款强大的原型设计工具,非常适…...

Python3安装
更新镜像: yum -y install epel-release.noarch 1.安装Python3 [root18 ~]# yum -y install python3 2.查看版本: [root18 ~]# python3 --version Python 3.6.8 3.执行镜像包: pip3 install -i https://pypi.tuna.tsinghua.edu.cn/sim…...
基于Python的数据科学系列(4):函数
引言 在前几篇文章中,我们探讨了Python中的基本数据类型、列表、元组和字典。在本文中,我们将深入研究Python中的函数。函数是编程中非常重要的概念,它允许我们将代码组织成模块化、可重用的组件。通过学习如何定义和使用函数,我们…...

高频焊接设备配电系统无源滤波系统的设计
1、高频焊机系统谐波状况简介 变压器容量:S11-M-1600/10KVA(105%)/0.4KV 短路阻抗:3.9% 谐波负载情况:一台600KW高频焊接设备 型号:GGP600-0.3-HC 输入电压:380V 输出电压:0…...
模拟退火的
题目链接 体验乱调参数而看天意的奇特体验 #include<bits/stdc.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<ll,ll> pii; const int inf0x3f3f3f3f; const int N1e510; const int mod1e97; //#define int long…...