将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件
import java.io.File;
import java.io.FileOutputStream;
public class Test
{
protected static String tmpString[][]={{
"头目:蛇怪",
"建议级别:12级",
"推荐武器:苏格兰斩剑",
"建议直接使用初始给予",
"的武器,初始武器有比",
"较理想的附魔。",
"",
"技巧:不断地按跳跃可",
"以停留在空中躲避蛇怪",
"的攻击,趁她攻击的间",
"歇。落下去砍她头上的",
"召唤符,是不错的方法",
"",
"难点一:触手攻击",
"头目的触手很长,停留",
"在地面很难回避,所以",
"最 办法是跳到空中",
"这样不但可以躲避攻击",
"也能攻击蛇怪的弱点",
"",
"难点二:召唤鱼",
"头目会召唤很多的食人",
"鱼,这些鱼虽然伤害不",
"高,但是会妨碍你跳跃",
"所以有机会一定要先消",
"灭那些碍事的食人鱼。",
"",
"头目:血池蛇怪",
"建议级别:50级",
"推荐使用雷神战斧或其",
"他名称为蓝色的武器。",
"建议带附有雷电盾的武",
"器魔法再搭配攻击或魔",
"击附魔!"
},
{"头目:守门人",
"建议级别:25级",
"推荐武器:风暴巨剑",
"建议攻击附魔或是魔击",
"附魔,配合风暴巨剑的",
"魔法技能可以对头目造",
"成很可观的伤害",
"",
"技巧:头目会召唤浮游",
"雷。当头目在浮游雷附",
"近时攻击浮游雷,浮游",
"雷爆炸也会对头目造成",
"伤害。浮游雷很多的话",
"伤害也不低。",
"",
"难点一:瞬间消失",
"头目瞬间消失后会出现",
"在你正上方或是左右。",
"但他发起攻击之前会有",
"准备动作,趁那时候赶",
"紧躲避吧!",
"",
"难点二:大范围激光",
"头目会发射多道激光,",
"覆盖范围很广。一定要",
"趁他发出激光前跳到他",
"身后,实在不行就跳跃",
"或蹲下吧。",
"",
"头目:魔界死神",
"建议级别:57级",
"推荐使用冰雪女王或名",
"称为蓝色的武器。",
"建议附有高级以上的攻",
"击或魔击附魔。"
},
{
"头目:魔术师",
"建议级别:31级",
"建议武器:极光军刀",
"建议攻击附魔再配有吸",
"血附魔,可以保证自己",
"生命的同时,有效地攻",
"击头目!",
"",
"技巧:头目发出的一种",
"体积较大的牌是可以砍",
"回去的,当他发出这种",
"牌的时候看准机会砍回",
"去,可以对头目造成伤",
"害!",
"",
"难点一:上下调转",
"头目会掉转上下,把你",
"变到屋顶上。头目拿出",
"体积最大的牌就预示他",
"要调转方向。这个无法",
"躲避,但要有心理准备",
"然后迅速适应。",
"",
"难点二:散弹型飞牌",
"头目最多会飞出五张牌",
"五张牌形成的弧形很大",
"可以跳到不同的方向或",
"是站在两张牌之间躲避",
"",
"头目:地狱使者",
"建议级别:90级",
"推荐使用冰雪女王或其",
"他名称为紫色的武器。",
"建议附究级攻击性的武",
"器魔法再配有究级吸血",
"附魔!可以保证自己生",
"命的同时,有效地攻击",
"头目!"
},{
"头目:伯爵",
"建议级别:37级",
"建议武器:雷神战斧",
"建议攻击附魔再配有吸",
"血附魔,可以保证自己",
"生命的同时,有效地攻",
"击头目!",
"",
"技巧:头目移动时会变",
"成蝙蝠,伯爵变身之后",
"是他防御最弱的时候,",
"趁他变回来之前,一定",
"要尽可能多的攻击他。",
"",
"难点一:大范围放蝙蝠",
"头目放出的蝙蝠不仅面",
"积广,还会造成多次伤",
"害。所以看到他将要放",
"出蝙蝠,尽可能跳到他",
"身后,不行的话就依靠",
"跳跃来躲避吧。",
"",
"难点二:召唤飞剑",
"头目会召唤很多飞剑,",
"飞剑会妨碍跳跃,也可",
"能打断你的连击,而且",
"飞剑造成的伤害也不低",
"所以一旦头目召唤出飞",
"剑一定要尽快消灭。",
"",
"头目:魔鬼伯爵",
"建议级别:65级",
"推荐使用冰雪女王或者",
"浑沌审判者。",
"建议附究级攻击性的武",
"器魔法再配有究级吸血",
"附魔!可以保证自己生",
"命的同时,有效地攻击",
"头目!"
}};
public void show()
{
for(int i=0;i<tmpString.length;i++)
{
for(int j=0;j<tmpString[i].length;j++)
{
System.out.println("tmpString["+i+"]["+j+"]"+tmpString[i][j]);
}
}
}
public void output()throws Exception
{
FileOutputStream fos=new FileOutputStream(new File("e:/test.mid"));
byte[] bs = "测试java 文件操作".getBytes();
//bs原本应该是tmpString[][]数组中的内容
fos.write(bs);
}
public static void main(String args[])
{
Test t=new Test();
t.show();
try
{t.output();
}
catch(Exception e)
{
}
}
}
- Java code
-
// 写入
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(tmpString.length);// 数组长度
for (int i = 0; i < tmpString.length; i++) {// 遍历数组
dos.writeInt(tmpString[i].length);// 子数组的长度
for (int j = 0; j < tmpString[i].length; j++) {// 遍历子数组
dos.writeUTF(tmpString[i][j]);//写入字符串
}
}
byte[] b = baos.toByteArray();
FileOutputStream fos = new FileOutputStream(new File("e:/test.mid"));
fos.write(b);
fos.close();
// 读取
DataInputStream dis = new DataInputStream(new FileInputStream("e:/test.mid"));
tmpString = new String[dis.readInt()][];//读取第一维长度
for (int i = 0; i < tmpString.length; i++) {//遍历数组
tmpString[i] = new String[dis.readInt()];//读取子数组长度
for (int j = 0; j < tmpString[i].length; j++)//遍历子数组
tmpString[i][j] = dis.readUTF();//读取字符串
}
dis.close();
- Java code
-
// 写入
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(tmpString.length);// 数组长度
for (int i = 0; i < tmpString.length; i++) {// 遍历数组
dos.writeInt(tmpString[i].length);// 子数组的长度
for (int j = 0; j < tmpString[i].length; j++) {// 遍历子数组
dos.writeUTF(tmpString[i][j]);//写入字符串
}
}
byte[] b = baos.toByteArray();
FileOutputStream fos = new FileOutputStream(new File("e:/test.mid"));
fos.write(b);
fos.close();
// 读取
DataInputStream dis = new DataInputStream(new FileInputStream("e:/test.mid"));
tmpString = new String[dis.readInt()][];//读取第一维长度
for (int i = 0; i < tmpString.length; i++) {//遍历数组
tmpString[i] = new String[dis.readInt()];//读取子数组长度
for (int j = 0; j < tmpString[i].length; j++)//遍历子数组
tmpString[i][j] = dis.readUTF();//读取字符串
}
dis.close();
将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件的更多相关文章
- 功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。
功能要求:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素 names={{"tom","jack","mike&qu ...
- php 向二维数组中追加元素
处理之前的数据: 处理后: //$consult 为往里插之前的数组 //把$arr的元素追加到$consult的最前面 $arr = []; $arr[0]['workplaceId'] = '0' ...
- 剑指offer:二维数组中的查找
目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...
- 【面试题003】c数组做为参数退化的问题,二维数组中的查找
[面试题003]c数组做为参数退化的问题,二维数组中的查找 一,c数组做为参数退化的问题 1.c/c++没有记录数组的大小,因此用指针访问数组中的元素的时候,我们要确保没有超过数组的边界, 通过下面 ...
- word search(二维数组中查找单词(匹配字符串))
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- 剑指Offer-【面试题03:二维数组中的查找】
package com.cxz.question3; /* * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. * 请完成一个函数,输入这样的一个二维数组和 ...
- 剑指offer系列——二维数组中,每行从左到右递增,每列从上到下递增,设计算法找其中的一个数
题目:二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数 分析: 二维数组这里把它看作一个矩形结构,如图所示: 1 2 8 2 4 9 12 4 7 10 13 6 8 11 ...
- 《剑指Offer》之二维数组中的查找
1.题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 2.代码实现 pu ...
- 剑指offer_快速查找递增二维数组中是否存在目标
[编程题]二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
随机推荐
- Centos6.5下安装php
安装php: yum -y install php 重启httpd服务激活php: /etc/init.d/httpd restart 测试php是否安装完成 vim /var/www/html/in ...
- YII学习,初体验 ,对YII的一些理解.
先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...
- Word Amalgamation(hdoj1113)
Word Amalgamation Problem Description In millions of newspapers across the United States there is a ...
- first blood暴力搜索,剪枝是关键
First Blood 题目描述 盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题: 老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小 ...
- oracle 创建表空间详细介绍
注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存 ...
- U盘开发之SSD对比
U盘因其小巧方便,逐步取代了笨重的移动硬盘和光驱,成为最普及的存储介质.现在的主板BIOS也将支持USB启动,作为标准之一,再过几年,光驱时代可能就要终结了.从早期的16MU盘,到现在动辄几个G,U盘 ...
- ubuntu 10.10配置NFS网络共享步骤
安装好交叉编译环境arm-linux-gcc之后,就开始配置NFS网络共享,用于不同的linux主机与目标机之间文件的共享.如果是windows和linux的共享则需用samba服务. NFS(Net ...
- GetModuleHandle,AfxGetInstanceHandle使用区别
当一个文件被映射到调用进程的地址空间时,GetModuleHandle函数得到其中某一模块的句柄. 使用GetModuleHandle函数格式:HMODULE GetModuleHandle( LPC ...
- Mysql 多表查询
文章转载的:http://www.cnblogs.com/BeginMan/p/3754322.html 一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM tab ...
- C#中静态与非静态方法比较【转】
C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析. C#的类中可以包含两种方法:C#静态方法与非静态方法.那么他们的定义有什么不同呢?他们在使用 ...