尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业第一题

要求:
1)在前面的基础上,将稀疏数组保存到磁盘上,比如map.data
2) 恢复原来的数组时,读取map.data进行恢复

就是利用了IO流

我们先写将数据写入到文件

File file = new File("d:/Spart.data");//文件对象
try {if (file.exists() == false) {//是否有指定文件,没有的话创建一个file.getParentFile().mkdir();}FileWriter fs = new FileWriter(file);for (int i = 0; i < Spartarray.length; i++) {for (int j = 0; j < 3; j++) {fs.write(Spartarray[i][j] + "\t");}fs.write("\r");}fs.close();} catch (IOException e) {e.printStackTrace();}

自己进行测试是可以成功的。
2.进行将文件的内容读进来
分析:虽然我们将数据存进去的时候是按行存进去的,假设我们这个时候另建立一个测试类,我们不知道文件当中有多少行,所以不知道创建多大的数组,那我们就先获得多少有多少行吧。

 BufferedReader in = new BufferedReader(new FileReader(file));String line;String line1;
int row0 = 0;//我的方法比较笨可能有更好的方法
while ((line = in.readLine()) != null) {String[] temp = line.split("\t");row0++;}

接下来我们可以创建数组并且将文件的内容读入数组中

/*为什么不用上次的in要自己新定义一个in1呢?
我之前这块用的上次的in,但是最后怎么都得不出值,因为此时的in是null,
因为in的作用就是判断当前行是否为空,
再上一个while的in的readline()已经是null了,所以要自己新定义一个。
如果需要加try可以在方法上抛出异常,这样就不用考虑局部变量不可用的问题*/int row1 = 0;String line1;
int Spartarray2[][] = new int[row0][3];BufferedReader in1 = new BufferedReader(new FileReader(file));while ((line1 = in1.readLine()) != null) {String[] temp = line1.split("\t");for (int m = 0; m < temp.length; m++) {Spartarray2[row1][m] = Integer.parseInt(temp[m]);}row1++;}in.close();for (int i = 0; i < row1; i++) {System.out.printf("%d\t%d\t%d\t\n", Spartarray2[i][0], Spartarray2[i][1], Spartarray2[i][2]);}
//然后可以将稀疏数组转换成二维数组int array2[][] = new int[Spartarray2[0][0]][Spartarray2[0][1]];for (int i = 1; i <= row1 - 1; i++) {array2[Spartarray2[i][0]][Spartarray2[i][1]] = Spartarray2[i][2];}for (int[] roww : array2) {for (int data : roww) {System.out.printf("%d\t", data);}System.out.println();}

尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业01相关推荐

  1. (尚硅谷项目代码)java基础----家庭记事本

    小记:跟着尚硅谷的老师学了三天的java基础,学习完家庭记事本之后自己动手打了一遍代码,其中Utility是一些用到的方法,已经事先给出,放在Utility.java文件中,只需要在FamilyAcc ...

  2. 02尚硅谷宋红康Java视频笔记之语言概述

    Java基础是学习JavaEE.大数据.Android开发 的基石! I Java基础知识图解 Java基础课程体系 1.1 软件开发介绍 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的 ...

  3. Java开发入门教程!韩顺平java数据结构课堂笔记

    摘要 Apache Kafka是一个分布式消息发布订阅系统.它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Ap ...

  4. 《尚硅谷30天入门Java》学习笔记1

    第0天–准备工作 1.工具之印象笔记 浏览器插件.Android.Windows客户端.chrome印象笔记插件可以实现减藏页面,做笔记! 一个浏览器插件的网站 之前拖插件到拓展程序这里,显示crx_ ...

  5. Java后端技术学习体系—韩顺平

    文章目录 第一部分:Java基础 变量.控制结构.OOP(封装,继承,多态).数组.Java API.异常和处理.集合.泛型.IO.反射.网络通信 第二部分:Java高级 1. Java多线程/高并发 ...

  6. Java JDBC和数据库连接池 韩顺平老师自学笔记

    JDBC和数据库连接池 JDBC 概述 基本介绍 原理示意图 代码示例 JdbcInterface 模拟Java公司提供给其它数据库厂商的接口,供给调用 TestJdbc 模拟一个类来实现数据库的调用 ...

  7. java操作数据库小工具--韩顺平SqlHelper

    看韩顺平老师的视频时候非常喜欢的喜欢的一个小工具就是操作数据库的SqlHelper 所以我就又写了一遍,加了点注释,基本上能满足平常开发使用. DBUtil类,主要是操作数据连接池 [cpp] vie ...

  8. Java坦克大战 跟学韩顺平老师视频开发

    这里写目录标题 TankBigWarGame 介绍 界面展示 项目架构 安装教程 游戏说明 项目涉及技术功能 游戏结束判断 项目不足与优化空间 相关代码展示 主方法Main 绘图界面 MyPanelF ...

  9. Java集合深入剖析【韩顺平老师版】

    Java集合知识体系[思维导图] 1.集合体系 1.1.为什么使用集合? 1.数组的不足 长度固定,不能更改 存储的必须是同一类型的元素(基本类型或引用类型) 增加.删除元素比较麻烦 2.集合的优势 ...

最新文章

  1. 转载知乎上的一篇:“ 面向对象编程的弊端是什么?”
  2. python动态柱状图_python – 在Jupyter中使用plotly以离线模式创建动画图表
  3. 深入理解ResNet原理解析及代码实现
  4. forceinline关键字
  5. 一个简单的 js 时间对象创建
  6. 【boost】time.1 同步计数器
  7. 数据库的驱动配置文件
  8. 罗永浩与锤子手机撇清关系;微软回应「高管传奇」经历;Rust 1.38 稳定版发布 | 极客头条...
  9. mysql 参数 innodb_flush_log_at_trx_commit
  10. win11wifi总掉线怎么办 windows11wifi总掉线的解决方法
  11. 洛谷 P4344 [SHOI2015]脑洞治疗仪
  12. odis工程师使用教程_大众奥迪工程师软件ODIS-E车型代码说明大全完整版
  13. Python自学笔记11:实操案例八(咖啡馆、2019中超联赛前五,模拟手机通讯录)
  14. 在html中dd 是什么列表,html中dt dd
  15. scala case 常用简写
  16. 关于:昨天H - 康托展开题目的探究。
  17. this指向,认识与理解this指向
  18. mac环境修改idea.vmoptions导致idea无法启动(闪退)
  19. 不少专车司机考虑退出
  20. 最大的幻术-游戏开发-到底是先学游戏引擎还是先学游戏编程

热门文章

  1. 《完美世界国际版》内测消息
  2. 博士毕业,高校青椒还是30万年薪私企?
  3. java实现计算复杂数学表达式
  4. mac登陆邮件失败(163)
  5. MAC地址修改方法(解决teamviewer访问超时限制的问题)亲测可用(文后有惊喜)
  6. 技术面试 - Java SE
  7. 多层面螺旋CT图像后处理技术
  8. 在AI横行的时代,你为什么还要固守大前端?
  9. 用java计算每月天数_如何自动计算每月天数(快逸免费版)
  10. php中session_id()函数详细介绍,会话id生成过程及session id长度