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

news2025/1/12 22:51:48

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); // 解析为 double

					Athlete 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.coloradmin.cn/o/1968663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI基本开发步骤(三)

引言 前面文章OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI&#xff08;一&#xff09; 和 OpenHarmony 入门——初识JS/ArkTS 侧的“JNI” NAPI 常见的函数详解&#xff08;二&#xff09;介绍了NAPI的基础理论知识&#xff0c;今天重点介绍下如何去开发一个自己的NAP…

maven插件2(spring-api-auth-valid-plugin)

https://maven.apache.org/guides/mini/guide-configuring-plugins.htmlhttps://maven.apache.org/plugin-testing/maven-plugin-testing-harness/getting-started/index.html plugin-desc 业务功能 所有的endpoint,必须带有指定的安全校验标签,如spring-security的PreAuthori…

RabbitMQ 集群安装

在 linux 下手动安装 RabbitMQ 集群。 准备 安装之前的准备工作。 准备内容说明其他3 台服务器centos、redhat 等ErlangRabbitMQ 运行需要的基础环境socatRabbitMQ 运行需要的基础环境logrotateRabbitMQ 运行需要的基础环境这个服务器一般自带了 下面的安装示例中使用的版本…

一键测量仪,能否彻底解决燃气灶配件缺陷问题?

燃气灶配件是指用于燃气灶的附件或零部件&#xff0c;用于安装、维护或改进燃气灶的功能和性能。这些配件通常包括各种零部件、附件和替换件&#xff0c;以确保燃气灶的正常运行和安全使用。燃气灶的火焰头是产生火焰的部件&#xff0c;通常根据不同的燃气类型和火力需求选择合…

python-求四位数(赛氪OJ)

[题目描述] 3025 这个数具有一种独特的性质&#xff1a;将它平分为二段&#xff0c;即 30 和 25&#xff0c;使之相加后求平方&#xff0c;即 (3025)^2&#xff0c;恰好等于 3025 本身。请求出具有这样性质的全部四位数。输入格式&#xff1a; 此题没有输入。输出格式&#xff…

详解并掌握AXI4总线协议(一)、AXI4-FULL接口介绍

系列文章目录 文章目录 系列文章目录一、AXI介绍二、AXI4、AXI-Lite、AXI4-Stream区别三、AXI4读写架构3.1 通道定义3.2 读突发时序3.3 写突发时序 四、AXI4-FULL 总线信号介绍4.1全局信号4.2 写地址通道信号4.3 写数据通道信号4.4 写响应通道信号4.5 读地址通道信号4.6 读数据…

Animate软件基础:在时间轴中添加或插入帧

FlashASer&#xff1a;AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084 FlashASer&#xff1a;实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer&#xff1a;Animate教程及作品源文件https://zhuanlan.zhihu.co…

抖音爆火的“拆盲盒”直播,是如何将昂贵的废品卖给消费者的?

抖音直播间掀起了一股“拆盲盒”热潮。 最初&#xff0c;这股热潮主要集中在拆卡直播间。一盒10包起卖的卡牌&#xff0c;价格在100~200不等。拆卡主播拿起剪刀行云流水的开盒、拆卡、过牌&#xff0c;一晚上能轻松跑出数万元的营业额。数据显示&#xff0c;头部卡牌公司卡游仅…

Redis+Unity 数据库搭建

游戏中需要存放排行榜等数据&#xff0c;而且是实时存放&#xff0c;所以就涉及到数据库的问题。这里找服务器大神了解到可以用Redis来做存储&#xff0c;免费的效率极高。 Redis的搭建参考上文的文章&#xff0c;同时也感谢这位网友。 搭建Redis 并测试数据 搭建Redis 1.下…

玩转云服务:Google Cloud谷歌云永久免费云服务器「白嫖」 指南

前几天&#xff0c;和大家分享了&#xff1a; 玩转云服务&#xff1a;Oracle Cloud甲骨文永久免费云服务器注册及配置指南 相信很多同学都卡在了这一步&#xff1a; 可用性域 AD-1 中配置 VM.Standard.E2.1.Micro 的容量不足。请在其他可用性域中创建实例&#xff0c;或稍后…

Kafka设计与原理详解

RocketMQ 是一款开源的分布式消息系统&#xff0c;基于高可用分布式集群技术&#xff0c;提供低延时的、高可靠的消息发布与订阅服务。同时&#xff0c;广泛应用于多个领域&#xff0c;包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即…

使用kettle开源工具进行跨库数据同步

数据库同步可以用&#xff1a; 1、Navicat 2、Kettle 3、自己写代码 调用码神工具跨库数据同步 -连接 4、其它 实现 这里使用Kettle来同步&#xff0c;主要是开源的&#xff0c;通过配置就可以实现了 Kettle的图形化界面&#xff08;Spoon&#xff09;安装参考方法 ht…

Maven实战.依赖(依赖范围、传递性依赖、依赖调解、可选依赖等)

文章目录 依赖的配置依赖范围传递性依赖传递性依赖和依赖范围依赖调解可选依赖最佳实践排除依赖归类依赖优化依赖 依赖的配置 依赖会有基本的groupId、artifactld 和 version等元素组成。其实一个依赖声明可以包含如下的一些元素&#xff1a; <project> ...<depende…

单例模式及其思想

本文包括以下几点↓ 结论&#xff1a;设计模式不是简单地将一个固定的代码框架套用到项目中&#xff0c;而是一种严谨的编程思想&#xff0c;旨在提供解决特定问题的经验和指导。 单例模式&#xff08;Singleton Pattern&#xff09; 意图 旨在确保类只有一个实例&#xff…

Linux用户-用户组

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注我&#xff0c;我尽量把自己会的都分享给大家&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。…

每日OJ_牛客HJ74 参数解析

目录 牛客HJ74 参数解析 解析代码1 解析代码2 牛客HJ74 参数解析 参数解析_牛客题霸_牛客网 解析代码1 本题通过以空格和双引号为间隔&#xff0c;统计参数个数。对于双引号&#xff0c;通过添加flag&#xff0c;保证双引号中的空格被输出。 #include <iostream> #i…

解决文件夹打不开难题:数据恢复全攻略

在日常的电脑使用过程中&#xff0c;遇到文件夹无法打开的情况无疑是令人头疼的。这不仅可能影响到我们的工作效率&#xff0c;还可能导致重要数据的丢失。本文将深入探讨文件夹打不开的原因&#xff0c;并为您提供两种高效的数据恢复方案&#xff0c;助您轻松应对这一难题。 一…

p33 指针详解(1)(2)(3)

指针的进阶 1.字符指针 void test(int arr[]) { int szsizeof(arr)/sizeof(arr[0]); printf("%d\n", sz); } int main() { int arr[10] {0}; test(arr); return 0; } 这个代码在64位计算机中是8/42 在32位计算机中的是4/41 int main() {char c…

vue2 搭配 html2canvas 截图并设置截图时样式(不影响页面) 以及 base64转file文件上传 或者下载截图 小记

下载 npm install html2canvas --save引入 import html2canvas from "html2canvas"; //使用 html2canvasForChars() { // 使用that来存储当前Vue组件的上下文&#xff0c;以便在回调函数中使用 let that this; // 获取DOM中id为"charts"的元素&…