花几千上万学习Java,真没必要!(三十八)

测试代码1:
package iotest.com;
import java.nio.charset.StandardCharsets;
import java.io.UnsupportedEncodingException; public class StringByteConversion { public static void main(String[] args) throws UnsupportedEncodingException { // 原始字符串 String originalString = "Hello, 世界!"; byte[] defaultBytes = originalString.getBytes(); String defaultDecodedString = new String(defaultBytes); System.out.println("默认字符集编码后解码: " + defaultDecodedString); // 使用指定的字符集(UTF-8)编码字符串 byte[] utf8Bytes = originalString.getBytes(StandardCharsets.UTF_8.name()); String utf8DecodedString = new String(utf8Bytes, StandardCharsets.UTF_8.name()); System.out.println("UTF-8编码后解码: " + utf8DecodedString); // 尝试使用ISO-8859-1(不支持中文)编码和解码字符串,以展示可能的乱码 try { byte[] isoBytes = originalString.getBytes("ISO-8859-1"); String isoDecodedString = new String(isoBytes, "ISO-8859-1"); System.out.println("ISO-8859-1编码后解码(可能导致乱码): " + isoDecodedString); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }
}
运行结果如下:
测试代码2:
package iotest.com;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; public class StreamMergerExample { public static void main(String[] args) { try { // 创建一个ByteArrayOutputStream捕获写入的字节 ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); // 使用UTF-8字符编码创建OutputStreamWriter OutputStreamWriter writer = new OutputStreamWriter(byteStream, "UTF-8"); // 写入文本 writer.write("Hello, 世界!"); // 刷新OutputStreamWriter,确保所有内容都被写入到底层ByteArrayOutputStream writer.flush(); // 关闭OutputStreamWriter// writer.close(); // 如果不打算重用byteStream,可以调用close() // 读取需要将其转换为ByteArrayInputStream InputStream inputStream = new ByteArrayInputStream(byteStream.toByteArray()); // 使用UTF-8字符编码(与写入时相同)创建InputStreamReader InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8"); // 可以用BufferedReader读取 int c; while ((c = reader.read()) != -1) { // 打印int的字符表示 if (c >= 0 && c <= 0xFFFF) { // 有效性检查(Java中的char是16位的) System.out.print((char) c); } } //如果使用的是包装流的类(如BufferedReader),则应该关闭。 System.out.println("\n读取完成。"); } catch (IOException e) { e.printStackTrace(); } }
}
运行结果如下:
测试代码3:
package iotest.com;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriterExample {public static void main(String[] args) {try {// 创建一个BufferedWriter对象写入文件BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));// 写一个字符writer.write('A');// 写入一个字符数组char[] charArray = {'B', 'C', 'D'};writer.write(charArray);// 写入字符数组的一部分writer.write(charArray, 1, 2);// 刷新流writer.flush();// 关闭流writer.close();} catch (IOException e) {e.printStackTrace();}}
}
测试代码4:
package iotest.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; public class FileReadWriteUTF8Example { public static void main(String[] args) { // 指定文件路径 String filePath = "E:\\Test\\a.txt"; // 写入文件,使用UTF-8编码 try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8"))) { String content = "这是一段测试文本,使用UTF-8编码写入。默认使用平台的默认字符编码。如果需要在不同平台间共享文件,或者文件包含特殊字符(如中文),使用显式的字符编码,如UTF-8。"; writer.write(content); System.out.println("写入成功。"); } catch (IOException e) { e.printStackTrace(); } // 读取文件,使用UTF-8编码,并打印到控制台 try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } }
}
运行结果如下:
测试代码5:
package iotest.com;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest { public static void main(String[] args) { try { // 创建一个FileReader对象读取文件 FileReader reader = new FileReader("E:\\Test\\a.txt"); // 使用read方法一次读取一个字符数据 int charData; while ((charData = reader.read()) != -1) { System.out.print((char) charData); // 打印读取的字符 } System.out.println(); //方法换行 // 使用read一次读取一个字符数组数据 char[] charArray = new char[3]; int numCharsRead; //使用read方法逐个读取字符并打印出来,直到文件末尾(-1)。while ((numCharsRead = reader.read(charArray)) != -1) { // 只打印实际读取的字符数 for (int i = 0; i < numCharsRead; i++) { System.out.print(charArray[i]); } } // 关闭流 reader.close(); } catch (IOException e) { e.printStackTrace(); } }
}
测试代码6:Copy文本。
package iotest.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; //readLine()方法读取一行文本。//它读取字符直到遇到换行符(\n)、回车符(\r)、回车后紧跟换行符(\r\n)或到达文件末尾。//返回包含该行内容的字符串,但不包括任何行终止符。//如果已到达流的末尾且没有更多的行可供读取,则返回null。//readLine()为按行读取文本文件内容的理想选择。
public class FileCopyTest { public static void main(String[] args) { String sourceFile = "E:\\Test\\a.txt"; String destFile = "D:\\AA\\destination.txt"; BufferedReader br = null; BufferedWriter bw = null; try { br = new BufferedReader(new FileReader(sourceFile)); bw = new BufferedWriter(new FileWriter(destFile)); String line; //readLine()按行读取源文件的内容while ((line = br.readLine()) != null) { bw.write(line); bw.newLine(); // 写入行分隔符 } System.out.println("文件复制成功!"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件复制失败!"); } finally { try { if (br != null) { br.close(); } if (bw != null) { bw.close(); } } catch (IOException e) { e.printStackTrace(); } } }
}
测试代码7:字符缓冲流复制文件
package iotest.com;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopyExample { public static void main(String[] args) { String sourceFile = "D:\\AA\\a.txt"; String destFile = "E:\\Test\\a.txt"; // 确保目标目录存在FileReader fileReader = null; FileWriter fileWriter = null; try { fileReader = new FileReader(sourceFile); fileWriter = new FileWriter(destFile); char[] buffer = new char[1024]; // 使用一个缓冲区存储读取的字符 int numCharsRead; // 循环读取文件直到到达末尾 while ((numCharsRead = fileReader.read(buffer)) != -1) { // 写入实际读取的字符数到目标文件 fileWriter.write(buffer, 0, numCharsRead); } System.out.println("文件复制成功!"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件复制失败!"); } finally { // 关闭资源 try { if (fileReader != null) { fileReader.close(); } if (fileWriter != null) { fileWriter.close(); } } catch (IOException e) { e.printStackTrace(); } } }
}
相关文章:
花几千上万学习Java,真没必要!(三十八)
测试代码1: package iotest.com; import java.nio.charset.StandardCharsets; import java.io.UnsupportedEncodingException; public class StringByteConversion { public static void main(String[] args) throws UnsupportedEncodingException { // 原始字…...
Zilliz 2025届校园招聘正式启动,寻找向量数据库内核开发工程师
为了解决非结构化数据处理问题,我们构建了向量数据库-Milvus! Milvus 数据库不仅是顶级开源基金会 LF AI&Data 的毕业项目,还曾登上数据库顶会SIGMOD、VLDB,在全球首届向量检索比赛中夺冠。目前,Milvus 项目已获得超过 2.8w s…...
TwinCAT3 新建项目教程
文章目录 打开TwinCAT 新建项目(通过TcXaeShell) 新建项目(通过VS 2019)...
大模型算法面试题(十九)
本系列收纳各种大模型面试题及答案。 1、SFT(有监督微调)、RM(奖励模型)、PPO(强化学习)的数据集格式? SFT(有监督微调)、RM(奖励模型)、PPO&…...
应用地址信息获取新技巧:Xinstall来助力
在移动互联网时代,应用获取用户地址信息的需求越来越普遍。无论是为了提供个性化服务,还是进行精准营销,地址信息都扮演着至关重要的角色。然而,如何合规、准确地获取这一信息,却是许多开发者面临的挑战。今天…...
图的最短路径算法:Dijkstra、Floyd-Warshall、Bellman-Ford
本文意在探讨图中最短路径算法 Dijkstra、Floyd-Warshall、Bellman-Ford 的对比和细节 整体分为如下四部分 总结性的比较了 Dijkstra、Floyd-Warshall、Bellman-FordDijkstra 算法介绍Floyd-Warshall 算法介绍Bellman-Ford 算法介绍 其中1、2、3 算法介绍部分会比较简洁&…...
Camera的pipline(TODO)
(TODO)...
非关系数据库-非关系数据库入门指南
非关系数据库入门指南 1. 引言:非关系数据库的兴起 在互联网技术飞速发展的今天,传统的关系型数据库面对海量数据和高并发访问时逐渐显得力不从心。于是,非关系数据库(NoSQL,Not Only SQL)应运而生&…...
看门狗IWDG、WWDG(速记版)
内置的看门狗有 独立看门狗 IWDG 和 窗口看门狗 WWDG 都用来在程序卡死的时候复位程序。 独立看门狗只有一个最晚时间界限。窗口看门狗有一个最早界限和最晚界限。独立看门狗有独立的时钟,一般设置来源时钟LSI40KHz。窗口看门狗挂靠在APB1总线上36MHz。 IWDG IWDG处于VDD供…...
ETL工程师角度下的SQL优化
作为ETL(Extract, Transform, Load)工程师,SQL优化是提高数据处理和分析效率的关键一环。优化SQL查询可以显著降低数据处理时间,提高ETL过程的性能。本文将从 合理设计数据模型:在ETL过程中,正确的数据模型…...
阿里云实时计算Flink在多行业的应用和实践
摘要:本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。内容分为以下四个部分: 业…...
开源项目与工具:C++中的高性能并发库 - Intel Threading Building Blocks (TBB)
在C++的世界里,随着多核处理器成为常态,如何有效利用这些多核资源以实现高性能的并发编程成为了开发者们关注的焦点。Intel Threading Building Blocks (TBB) 作为一个专为并行编程设计的C++库,凭借其易用性、高效性和可扩展性,在高性能计算、游戏开发、金融分析等多个领域…...
Chapter 22 数据可视化——折线图
欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能! 文章目录 前言一、Pyecharts介绍二、安装Pyecharts三、全局配置项四、绘制折线图 前言 在大数据时代,数据可视化成为了分析和展示数据的重要手段。Pyecharts 是一个基于 …...
管理流创建schema流程源码解析
一、简析 schema是pulsar重要的功能之一,现在就一起从源码的视角看下管理流创建schema时客户端和服务端的表现 客户端 客户端主要经历以下四个步骤 创建Schema实例 根据数据类型创建相对应的实例,例如Avro创建AvroSchema、JSON创建JSONSchema等 获取…...
【iOS】iOS内存五大分区
iOS内存五大分区 总揽 iOS中,内存主要分为五大区域:栈区,堆区,全局区/静态区,常量区和代码区。总览图如下。 这个图我觉得更好记,因为下面是低地址,上面是高地址,是比较符合日常…...
【项目实战】—— 高并发内存池
文章目录 什么是高并发内存池?项目介绍一、项目背景二、项目目标三、核心组件四、关键技术五、应用场景六、项目优势 什么是高并发内存池? 高并发内存池是一种专门设计用于高并发环境下的内存管理机制。它的原型是Google的一个开源项目tcmallocÿ…...
二叉搜索树的第 k 大的节点
题目描述 给定一棵二叉搜索树,请找出其中第 k 大的节点。 解题基本知识 二叉搜索树(Binary Search Tree)又名二叉查找树、二叉排序树。它是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子…...
利用langchain 做大模型 Few-shot Learning 提示,包括固定和向量相似的动态样本筛选
文章目录 few-shotFixed Examples 固定样本Dynamic few-shot prompting 动态样本提示辅助参考资料 few-shot 相比大模型微调,在有些情况下,我们更想使用 Few-shot Learning 通过给模型喂相关样本示例,让模型能够提升相应任务的能力。 固定样…...
基于python的百度迁徙迁入、迁出数据分析(五)
终于在第五篇文章我们进入了这个系列的正题:数据分析 这里我选择上海2024年5月1日——5月5日的迁入、迁出数据作为分析的基础,首先选择节假日的数据作为分析的原因呢,主要是节假日人们出行目的比较单一(出游、探亲)&a…...
SpringBoot 如何处理跨域请求
SpringBoot 处理跨域请求,通常是通过配置全局的 CORS(跨源资源共享)策略来实现的。CORS 是一种机制,它使用额外的 HTTP 头部来告诉浏览器,让运行在一个 origin (domain) 上的 web 应用被准许访问来自不同源服务器上的指…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
