我目前正在开发一个基本的国际象棋程序,该程序允许用户保存当前游戏并稍后再返回并从上次停止的地方接机。 唯一的问题是我不知道如何将2d数组保存到磁盘文件。 我感到更加困惑的是,该代码集需要单独写入每个值,并且如果该值为" null",则不输出任何内容。 我环顾四周,找不到任何能真正回答我问题的东西。 我在编码方面还很陌生,所以如果这是一个基本问题,我深表歉意。 我当前的代码集是:

Path file = Paths.get("fileName");

Files.write(file, lines, Charset.forName("UTF-8"));

PrintWriter save = new PrintWriter(new FileOutputStream(("fileName")));

Path.close();

在第一个实例中:Java中的数组总是对象。因此,您只需使用Java序列化即可一次性读取/写入整个阵列。换句话说:您告诉Java将整个数组转换为字节流;然后将这些字节写入文件。后来,您又读了回来。而且您完全不必担心空插槽。

为此,您需要做的所有事情:确保其中具有二维数组的类具有可序列化的。

如上所述,这是"简单"的解决方案。对于学习,您当然可以实施自己的策略。关键是:在Java中没有"默认"的写入数组数据的方法。您必须编写采用一/二/任意暗数组的代码。创建一个表示形式...将其写入文件。然后您的代码便可以撤消该操作。一些伪代码给你一个想法:

np = compute number of pieces currently found on the board

write np

for col = a to h

for row = 1 to 8

if board(row/col) is not empty

write col, row, piece on that slot

关键是:上面的代码定义了从内存板到可以写入文件的映射。这也可以逆转。

但老实说,您走错了路。您根本不想保存一块板(或两个暗阵列)。

取而代之的是,考虑董事会代表什么…………不过是一系列行动的具体结果。

当您购买一本关于奶酪的书,并且看到有关火柴的讨论时,他们只是画单板吗?不,那么您通常会查看所有动作的顺序;和中间的一些木板。

长话短说:设计中的一个潜在"基础"元素可能是移动类。仅代表一招。

现在,国际象棋游戏成为List("移动"对象列表)。而且,仅通过使Move可序列化,就可以轻松地将整个历史记录读/写到文件中。

java二维对象数组存入文件_关于Java:将2D数组保存到磁盘文件相关推荐

  1. java二维对象数组_java 二维数组和对象数组

    1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组 2.二维数组的初始化 1) int intA[][]={{1,2},{2,3},{3,4,5}}; 2) int [][] intB=n ...

  2. java 二维数据结构_JAVA描述算法和数据结构(01):稀疏数组和二维数组转换

    一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元 ...

  3. c语言结构体数组存入文件_关于从文件中读取数据并写入结构体数组

    已结贴√ 问题点数:25 回复次数:10 关于从文件中读取数据并写入结构体数组 各位大大好,本人新手一枚,最近写简单的通讯录的c程序,其他功能完好,最后一个将txt文件中的数据写入结构体数组的函数无法 ...

  4. java二维矩阵怎么进行转置_矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)...

    〇. 前言 在一个多月前,针对有同学关于矩阵求导中分子布局.分母布局两者的区别的疑问,我写了如下的这篇答案. 矩阵求导中布局约定,两者布局的意义是什么?​www.zhihu.com 虽然这篇答案给出了 ...

  5. java二维数奇数组金字塔_金字塔内发现一组神奇数字 至今无解(图)

    世界上有这么一组数字"142857",看起来不认为有什么特别,这组数字不包含3.6.9,而且是从埃及金字塔里面发现的一组数字,其中蕴含的未知谜团还有规律,到现在还是无法正确解释. ...

  6. java二维数奇数组金字塔_金字塔内神秘的数字~世界末日真的存在?

    说到世界末日,大家一定对2012还记忆犹新,曾被说的玄乎奇迹,传的沸沸扬扬的2012世界末日最终也没有到来,到来的只是一堆借着世界末日的噱头炒起来的电影和一群赚的盆满钵满的导演.不过科学家们总是不甘寂 ...

  7. java二维数奇数组金字塔_金字塔神奇数学几何 竟存在世外高人!

    19世纪的研究家们通过对金字塔进行细致研究后相继声明:大金字塔蕴含着极其神奇的数学和几何学知识,金字塔各部位的尺寸也有重要含义!到底这外形看起来平淡无奇的金字塔,内部究竟蕴含了多少神秘?我们一起去看看 ...

  8. java大量实例化对象如何调优_成都Java性能调优技巧

    成都Java性能调优技巧.大部分建议是针对Java的.但也有若干建议是与语言无关的,可以应用于所有应用程序和编程语言.在讨论专门针对Java的性能调优技巧之前,让我们先来看看通用技巧. 1.在你知道必 ...

  9. Java实现剪切MP3格式的文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 很多朋友在看我的<java IO总结系列>之前觉得创建文件.文件夹删除文件这些基础操作真的是太简单了.但看了我的文章之后,有小 ...

最新文章

  1. numpy 数组 最大值、最小值、中位数、均值、标准差、方差、总和、排序、去重
  2. 使用Java的RESTful Web服务
  3. 至诚学院MATLAB第四次,MATLAB 第二次实验课课堂作业(4学时)
  4. python3.8自带matlop和numpy吗_python3.8自带matlop和numpy吗_python之matloplib可视化
  5. win7 更新android sdk,大神为你详解win7系统android sdk manager无法更新的处理对策
  6. 华龙电音基调网_华龙电音基调查询器下载(最好用的电音基调查询器) v1.4免费版...
  7. Unity安装包下载及安装教程
  8. ArcView,ArcGis,MapObjects,ISRI有什么区别
  9. 毛星云opencv入门图像模糊blur代码
  10. Linux查看端口命令
  11. 【报告分享】 2020-2021智能手机消费趋势与用户忠诚和流失度报告-企鹅智库(附下载)
  12. Java图形界面编程--漫天繁星
  13. installShield_script学习
  14. css怎么做响应式布局,用CSS实现响应式布局
  15. c语言的%的转义吗,%20转义(C语言转义字符问题)
  16. 欧姆龙PLC HostLink通讯 C-MODE格式
  17. Python的turtle模块画爱心箭(附源码)
  18. 16岁女孩攻陷著名安全企业HBGary
  19. 吕泉高维智慧创始人:17年心灵修行与素食·造就冻龄女神
  20. Detachment(数论)

热门文章

  1. 分享Kali Linux 2017.1镜像
  2. 四轴飞行器实践教程第1章什么是飞行器
  3. SwiftUI区分浅色和深色
  4. 不拆分单词也可以做NLP,哈工大最新模型在多项任务中打败BERT,还能直接训练中文...
  5. 苹果M1芯片升级果然很炸场:性能暴涨功耗速降!但最香新品竟是无降噪AirPods 3...
  6. 奔四的听力障碍码农,被开除15次,面试被拒200+次,还要继续干下去吗?
  7. 「思想钢印」成真!33位中美科学家最新成果:用光成功改变大脑认知
  8. “请给我一个五彩斑斓的黑”,只需一行命令就能让AI画画,OpenAI的Dall-E被大神复现...
  9. 录音降噪哪家强?搜狗西工大联合团队DNS挑战赛夺冠
  10. 冲刺区块链第一股,也是AI芯片第一股,嘉楠在美提交IPO招股书