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

1、BufferedReader的使用:

测试代码:

package test.com;
import java.io.BufferedReader;  
import java.io.FileReader;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  public class FileReadToList {  public static void main(String[] args) {  // 文件路径  String filePath = "D:\\AA\\a.txt";  // 创建列表存储文件中的每一行  List<String> lines = new ArrayList<>();  try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {  String line;  // 逐行读取直到文件末尾  while ((line = reader.readLine()) != null) {  // 将读取的每一行添加到列表中  lines.add(line);  }  // 遍历列表并打印每一行  for (String str : lines) {  System.out.println(str);  }  } catch (IOException e) {  e.printStackTrace();  System.out.println("读取文件时发生错误:" + e.getMessage());  }  }  
}

运行结果如下;

 

2、BufferedWriter的使用:

测试代码:

package test.com;
import java.io.BufferedWriter;  
import java.io.FileWriter;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  public class WriteListToFile {  public static void main(String[] args) {  // ArrayList集合,存储字符串。  List<String> strings = new ArrayList<>();  strings.add("第一行");  strings.add("第二行");  strings.add("第三行");  // 指定文件路径  String filePath = "E:\\Test\\a.txt";  // 使用try-with-resources语句来自动关闭BufferedWriter  try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {  // 遍历集合  for (String str : strings) {  // 将每个字符串写入文件,并在末尾添加换行符  writer.write(str);  writer.newLine(); // 写入一个新的行分隔符  }  // 由于使用了try-with-resources,不需要显式调用writer.close();  // 会在try块的末尾自动调用  } catch (IOException e) {  e.printStackTrace();  System.out.println("写入文件时发生错误:" + e.getMessage());  }  System.out.println("文件写入完成。");  }  
}

运行结果如下:

 

3、文件到集合:

测试代码:

创建一个运动员类;

package test.com; 
public class Athlete {  private String name;  private String gender;  private String nationality;  private double height; // 身高,单位cm  private double weight; // 体重,单位kg  // 构造方法public Athlete(String name, String gender, String nationality, double height, double weight) {  this.name = name;  this.gender = gender;  this.nationality = nationality;  this.height = height;  this.weight = weight;  }   public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getNationality() {return nationality;}public void setNationality(String nationality) {this.nationality = nationality;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}// toString方法(可选,用于打印Athlete对象的信息)  @Override  public String toString() {  return "Athlete{" +  "name='" + name + '\'' +  ", gender='" + gender + '\'' +  ", nationality='" + nationality + '\'' +  ", height=" + height + "cm" +  ", weight=" + weight + "kg" +  '}';  }  
}

读取:E:\\Test\\athletes.txt 文本中的文件到集合:

package test.com;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;public class RandomRollCall {public static void main(String[] args) {List<Athlete> athletes = new ArrayList<>();BufferedReader reader = null;try {reader = new BufferedReader(new FileReader("E:\\Test\\athletes.txt"));String line;while ((line = reader.readLine()) != null) {String[] fields = line.split("\\s+"); // 使用一个或多个空格作为分隔符if (fields.length >= 4) {String name = fields[0];String gender = fields[1];String nationality = fields[2];// 去除身高字符串中的 "cm" 后缀String heightStr = fields[3].replace("cm", "").trim();double height = Double.parseDouble(heightStr); // 解析为 doubleAthlete athlete = new Athlete(name, gender, nationality, height,height); athletes.add(athlete);}}// 打印运动员信息for (Athlete athlete : athletes) {System.out.println(athlete); // 确保 Athlete 类有合适的 toString() 方法}} catch (IOException | NumberFormatException e) {e.printStackTrace();// 添加记录日志或通知用户的方法。} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}}}}
}

运行结果如下:

 

4、集合到文件;

测试代码:

创建一个鲜花类:

package test.com;
public class Flower {private String name;private String color;private int petals;private int quantity;private String origin;// 构造方法public Flower(String name, String color, int petals, int quantity, String origin) {this.name = name;this.color = color;this.petals = petals;this.quantity = quantity;this.origin = origin;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getPetals() {return petals;}public void setPetals(int petals) {this.petals = petals;}public int getQuantity() {return quantity;}public void setQuantity(int quantity) {this.quantity = quantity;}public String getOrigin() {return origin;}public void setOrigin(String origin) {this.origin = origin;}// 格式化输出方法public String toFormattedString() {return String.format("%s,%s,%d,%d,%s", name, color, petals, quantity, origin);}
}

将集合写入到:E:\\Test\\flowers.txt文本文件中。 

package test.com;
import java.io.BufferedWriter;  
import java.io.FileWriter;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  
public class FlowerListToFile {  public static void main(String[] args) {  List<Flower> flowers = new ArrayList<>();  flowers.add(new Flower("玫瑰", "红色", 26, 10, "中国"));  flowers.add(new Flower("郁金香", "黄色", 6, 20, "荷兰"));  flowers.add(new Flower("菊花", "白色", 100, 5, "日本"));  // 文件路径  String filePath = "E:\\Test\\flowers.txt";  // 写入文件  try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {  for (Flower flower : flowers) {  writer.write(flower.toFormattedString());  writer.newLine(); // 换行  }  } catch (IOException e) {  e.printStackTrace();  }  System.out.println("鲜花数据已写入文件:" + filePath);  }  
}

运行结果如下:

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/388653.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 openai 和 langchain 调用自定义工具完成提问需求

我们提供了一个函数&#xff0c;接受传入运算的字符串&#xff0c;返回运算的结果。 现在的需求是&#xff0c;我们问 gpt 模型&#xff0c;由于模型计算能力并不好&#xff0c;他要调用计算函数&#xff0c;根据计算结果&#xff0c;回答我们的问题。 使用 openai 实现&#…

发布NPM包详细流程

制作 首先需要制作一个npm包。 按照以下步骤依次执行。 mkdir my-npm-package cd my-npm-package npm init 相信这一步不需要过多的解释&#xff0c;就是创建了一个文件夹&#xff0c;然后初始化了一下文件夹。 然后在生成的package.json文件夹中更改一下自己的配置&…

优化冗余代码:提升前端项目开发效率的实用方法

目录 前言代码复用与组件化模块化开发与代码分割工具辅助与自动化结束语 前言 在前端开发中&#xff0c;我们常常会遇到代码冗余的问题&#xff0c;这不仅增加了代码量&#xff0c;还影响了项目的可维护性和开发效率。还有就是有时候会接到紧急业务需求&#xff0c;要求立马完…

这两个大龄程序员,打算搞垮一个世界软件巨头!

大家都知道&#xff0c;Adobe是多媒体和数字内容创作者的绝对王者&#xff0c;它的旗下有众多大家耳熟能详的软件&#xff1a;Photoshop、Illustrator、Premiere Pro、After Effects、InDegign、Acrobat、Animate等等。 这些软件使用门槛很高&#xff0c;价格昂贵&#xff0c;安…

遗传算法与深度学习实战——生命模拟及其应用

遗传算法与深度学习实战——生命模拟及其应用 0. 前言1. 康威生命游戏1.1 康威生命游戏的规则1.2 实现康威生命游戏1.3 空间生命和智能体模拟 2. 实现生命模拟3. 生命模拟应用小结系列链接 0. 前言 生命模拟是进化计算的一个特定子集&#xff0c;模拟了自然界中所观察到的自然…

大模型之多模态大模型技术

本文作为大模型综述第三篇,介绍语言大模型多模态技术。 不同于语言大模型只对文本进行处理,多模态大模型将文本、语音、图像、视频等多模态数据联合起来进行学习。多模态大模型融合了多种感知途径与表达形态, 能够同时处理和理解来自不同感知通道(例如视觉、听觉、语言和触…

麒麟系统查看和修改ip

查看ip ifconfig ifconfig enp0s3 192.168.1.110

使用Echarts来实现数据可视化

目录 一.什么是ECharts? 二.如何使用Springboot来从后端给Echarts返回响应的数据&#xff1f; eg:折线图&#xff1a; ①Controller层&#xff1a; ②service层&#xff1a; 一.什么是ECharts? ECharts是一款基于JavaScript的数据可视化图标库&#xff0c;提供直观&…

javaScript中的对象

创建 this指向 命名规则 不符合变量名的命名规则和规范使用数组关联语法获取 遍历对象 使用for&#xff08;var key in 对象&#xff09; 删除属性 对象引用关系

Flutter大型项目架构:私有组件包管理

随着项目功能模块越来越多&#xff0c;怎么去管理这些私有组件包是一个不得不面对的问题&#xff0c;特别对于团队开发来讲&#xff0c;一些通用的公共组件往往会在多个项目间使用&#xff0c;多的有几十个&#xff0c;每个组件包都有有自己的版本&#xff0c;组件包之间还有依…

一篇文章带你入门爬虫并编写自己的第一个爬虫程序

一、引言 目前我们处在一个信息快速迭代更新的时代&#xff0c;海量的数据以大爆炸的形式出现在网络之中&#xff0c;相比起过去那个通过广播无线电、书籍报刊等传统媒介获取信息的方式&#xff0c;我们现在通过网络使用搜索引擎几乎可以获得任何我们需要的信息资源。 但与此同…

Vue前端工程

创建一个工程化的vue项目 npm init vuelatest 全默认回车就好了 登录注册校验 //定义数据模型 const registerDataref({username:,password:,rePassword: }) //校验密码的函数 const checkRePassword(rule,value,callback)>{if (value){callback(new Error(请再次输入密…

python基础知识点

最近系统温习了一遍python基础语法&#xff0c;把自己不熟知的知识点罗列一遍&#xff0c;便于查阅~~ python教程 Python 基础教程 | 菜鸟教程 1、python标识符 以单下划线开头 _foo 的代表不能直接访问的类属性&#xff0c;需通过类提供的接口进行访问&#xff0c;不能用 f…

c++STL容器中vector的使用,模拟实现及迭代器使用注意事项和迭代器失效问题

目录 前言&#xff1a; 1.vector的介绍及使用 1.2 vector的使用 1.2 1 vector的定义 1.2 2 vector iterator&#xff08;迭代器&#xff09;的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5vector 迭代器失效问题。 2.vector模拟实现 2.1 std::vect…

大彩触摸屏与单片机通讯

目录&#xff1a; 一、概述 1、触摸屏简介 2、安装软件 1&#xff09;设置VSPD软件 2&#xff09;设置VisualTFT软件 3&#xff09;设置串口软件 二、单片机发送指令给触摸屏 1、发送文本 2、显示与隐藏控件 1&#xff09;通过指令助手生成指令 2&#xff09;隐藏…

实现Obsidian PC端和手机端(安卓)同步

步骤 1&#xff1a;在PC端设置Obsidian 安装Obsidian和Git&#xff1a;确保你的PC上已经安装了Obsidian和Git。你可以从Obsidian官网和Git官网下载并安装。 克隆GitHub代码库&#xff1a;在PC上打开命令行&#xff08;例如Windows的命令提示符或Mac/Linux的终端&#xff09;&a…

Redis 初步认识

目录 1. 概述 2. 数据结构 3. 使用方式 4. 优势 1. 概述 Redis &#xff08;Remote Directory Server&#xff09;是一个开源的基于内存的数据存储系统&#xff1b; 可以用作数据库缓存和消息队列等各种场景&#xff0c;也是目前最热门的 NoSQL 数据库之一&#xff1b; 早…

LeetCode3. 无重复字符的最长子串(java实现)

今天分享的题目是LeetCode3. 无重复字符的最长子串&#xff0c;来看题目描述&#xff1a; 无重复的最长子串&#xff0c;题目有可能有些小伙伴没读太懂&#xff0c;其实就是找到不重复的最长子串&#xff0c;比如eg3&#xff0c;pwwk&#xff0c;那么w出现了两次就不符合要求。…

Spring源码- context:component-scan base-package标签的作用源码解析

1.扫描包路径下所有的类加载解析成bean定义信息 ClassPathBeanDefinitionScanner .doScan方法调用路径 doScan:276, ClassPathBeanDefinitionScanner (org.springframework.context.annotation) parse:95, ComponentScanBeanDefinitionParser (org.springframework.context.a…

C语言第九天笔记

数组的概念 什 么是数组 数组是 相同类型&#xff0c; 有序数据的集合。 数 组的特征 数组中的数据被称为数组的 元素&#xff0c;是同构的 数组中的元素存放在内存空间里 (char player_name[6]&#xff1a;申请在内存中开辟6块连续的基于char类 型的变量空间) 衍生概念&…