码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • java大作业中的文件操作


    java大作业要求将内容读入一个文件内,之后再次运行该程序时将内容读入。

    例如,在程序中已经读入了三个宠物的信息,在程序退出之前将这三个宠物信息存入到一个文件内。当再次运行该程序时,需要先将文件内的三个宠物信息进行读入到程序中。

    在这个过程中,用到了FileWriter和BufferedReader。尽管FileReader也可以进行读入,但是实现以上操作过于复杂,因此用BufferedReder进行替换。

    将程序内的信息存入文件内

    public void writeToFile() {
    	try (FileWriter writeFile = new FileWriter("pets.txt")) {
    		writeFile.write("content");
    	} catch (Exception e) {
    		sout(e.getMessage());
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这个函数块内的操作等价于:

    FileWriter writeFile = null;
    try {
    	writeFile = new FileWriter("pets.txt");
    } catch (Exception e) {
    	sout(e.getMessage());
    } finally {
    	if(writeFile != null) {
    		writeFile.close();
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    将要存入文件的内容替换"content"内容,即可实现。

    程序读入文件内的内容

    public void fromFileToProgram() {
    	try(BufferedReader br = new BufferedReader(new FileReader("pets.txt"))) {
    		String line = "";
    		while( (line = br.readLine()) != null) {
    			// 得到这一行字符串line,进行操作即可。
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    经过实践,如果该行是只有换行符\n的话就是null。

    对字符串进行操作

    用BufferedReader进行读取一行得到的是这一行的字符串。可能这一行里面有名字、年龄、颜色、体重等。如何获取具体且准确的信息呢。

    可以用trim()、split(reg)这些函数。

    • trim()

    将字符串前后的空格去掉。

    • split(reg)

    以reg内容进行分割,得到字符串数组。

    例如,Hello I am Golemon。

    对这个字符串按空格进行分割。

    String str = "Hello I am Golemon";
    String[] sa = str.split(" ");
    // 得到了字符串数组 ["Hello", "I", "am", "Golemon"]
    
    • 1
    • 2
    • 3

    现在得到了这些信息的字符串类型,对于int,double型如何进行转换呢。

    可以用Java提供的字符串转基础类型的方法。

    只有合法的基础类型的字符串类型才行。"123"可以转为123,但是"12e3"不能被转为整型,会发生异常。

    • 字符串转整型
    String str = "2323";
    int a = Integer.parseInt(str);
    
    • 1
    • 2
    • 字符串转浮点型

    同理

    String str = "1212.22";
    double b = Double.parseDouble(str);
    
    • 1
    • 2

    现在,就可以完成大作业的文件处理部分了。

  • 相关阅读:
    软件测试周刊(第87期):天下就没有偶然,那不过是化了妆的、戴了面具的必然。
    “出海”掘金,程序员为何要奔赴新的战场?
    开发一个不需要重写成Hive QL的大数据SQL引擎
    9类人事管理场景应用,泛微协助HR释放更多工作量
    非连续分配管理方式之基本分页存储管理
    Java面向对象编程三大特征-多态
    测试环境日志爆内存?我用一个工具类搞定了双日志体系的智能打印
    [附源码]java毕业设计网上手机商城
    springboot面向园区管理的物联网云平台设计与实现毕业设计源码150916
    大模型系列-fastgpt,ollama搭建本地知识库
  • 原文地址:https://blog.csdn.net/qq_63432403/article/details/134492764
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号