一个类里有stringstream write类型数据,是不是不能用ofwrite写入文件??

怎么将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件-java-电脑编程网怎么将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件作者:liuxinyu 和相关&&怎么将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件import .io.Fimport .io.FileOutputSpublic class Test& {protected static String tmpString[][]={{&头目:蛇怪&,&建议级别:12级&,&推荐武器:苏格兰斩剑&,&建议直接使用初始给予&,&的武器,初始武器有比&,&较理想的附魔。&,&&,&技巧:不断地按跳跃可&,&以停留在空中躲避蛇怪&,&的攻击,趁她攻击的间&,&歇。落下去砍她头上的&,&召唤符,是不错的方法&,&&,&难点一:触手攻击&,&头目的触手很长,停留&,&在地面很难回避,所以&,&最 办法是跳到空中&,&这样不但可以躲避攻击&,&也能攻击蛇怪的弱点&,&&,&难点二:召唤鱼&,&头目会召唤很多的食人&,&鱼,这些鱼虽然伤害不&,&高,但是会妨碍你跳跃&,&所以有机会一定要先消&,&灭那些碍事的食人鱼。&,&&,&头目:血池蛇怪&,&建议级别:50级&,&推荐使用雷神战斧或其&,&他名称为蓝色的武器。&,&建议带附有雷电盾的武&,&器魔法再搭配攻击或魔&,&击附魔!&},{&头目:守门人&,&建议级别:25级&,&推荐武器:风暴巨剑&,&建议攻击附魔或是魔击&,&附魔,配合风暴巨剑的&,&魔法技能可以对头目造&,&成很可观的伤害&,&&,&技巧:头目会召唤浮游&,&雷。当头目在浮游雷附&,&近时攻击浮游雷,浮游&,&雷爆炸也会对头目造成&,&伤害。浮游雷很多的话&,&伤害也不低。&,&&,&难点一:瞬间消失&,&头目瞬间消失后会出现&,&在你正上方或是左右。&,&但他发起攻击之前会有&,&准备动作,趁那时候赶&,&紧躲避吧!&,&&,&难点二:大范围激光&,&头目会发射多道激光,&,&覆盖范围很广。一定要&,&趁他发出激光前跳到他&,&身后,实在不行就跳跃&,&或蹲下吧。&,&&,&头目:魔界死神&,&建议级别:57级&,&推荐使用冰雪女王或名&,&称为蓝色的武器。&,&建议附有高级以上的攻&,&击或魔击附魔。&},{&头目:魔术师&,&建议级别:31级&,&建议武器:极光军刀&,&建议攻击附魔再配有吸&,&血附魔,可以保证自己&,&生命的同时,有效地攻&,&击头目!&,&&,&技巧:头目发出的一种&,&体积较大的牌是可以砍&,&回去的,当他发出这种&,&牌的时候看准机会砍回&,&去,可以对头目造成伤&,&害!&,&&,&难点一:上下调转&,&头目会掉转上下,把你&,&变到屋顶上。头目拿出&,&体积最大的牌就预示他&,&要调转方向。这个无法&,&躲避,但要有心理准备&,&然后迅速适应。&,&&,&难点二:散弹型飞牌&,&头目最多会飞出五张牌&,&五张牌形成的弧形很大&,&可以跳到不同的方向或&,&是站在两张牌之间躲避&,&&,&头目:地狱使者&,&建议级别:90级&,&推荐使用冰雪女王或其&,&他名称为紫色的武器。&,&建议附究级攻击性的武&,&器魔法再配有究级吸血&,&附魔!可以保证自己生&,&命的同时,有效地攻击&,&头目!&},{&头目:伯爵&,&建议级别:37级&,&建议武器:雷神战斧&,&建议攻击附魔再配有吸&,&血附魔,可以保证自己&,&生命的同时,有效地攻&,&击头目!&,&&,&技巧:头目移动时会变&,&成蝙蝠,伯爵变身之后&,&是他防御最弱的时候,&,&趁他变回来之前,一定&,&要尽可能多的攻击他。&,&&,&难点一:大范围放蝙蝠&,&头目放出的蝙蝠不仅面&,&积广,还会造成多次伤&,&害。所以看到他将要放&,&出蝙蝠,尽可能跳到他&,&身后,不行的话就依靠&,&跳跃来躲避吧。&,&&,&难点二:召唤飞剑&,&头目会召唤很多飞剑,&,&飞剑会妨碍跳跃,也可&,&能打断你的连击,而且&,&飞剑造成的伤害也不低&,&所以一旦头目召唤出飞&,&剑一定要尽快消灭。&,&&,&头目:魔鬼伯爵&,&建议级别:65级&,&推荐使用冰雪女王或者&,&浑沌审判者。&,&建议附究级攻击性的武&,&器魔法再配有究级吸血&,&附魔!可以保证自己生&,&命的同时,有效地攻击&,&头目!&}};&
public void show()&
for(int i=0;i&tmpString.i++)&
for(int j=0;j&tmpString[i].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){}}}------回答---------------其他回答(20分)---------Java code
// 写入
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream
= new DataOutputStream(baos);
.writeInt(tmpString.length);// 数组长度
for (int i = 0; i & tmpString. i++) {// 遍历数组
dos.writeInt(tmpString[i].length);// 子数组的长度
for (int j = 0; j & tmpString[i]. 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. i++) {//遍历数组
tmpString[i] = new String[dis.readInt()];//读取子数组长度
for (int j = 0; j & tmpString[i]. j++)//遍历子数组
tmpString[i][j] = dis.readUTF();//读取字符串
}
dis.close();
------回答---------------其他回答(20分)---------
Java code
// 写入
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(tmpString.length);// 数组长度
for (int i = 0; i & tmpString. i++) {// 遍历数组
dos.writeInt(tmpString[i].length);// 子数组的长度
for (int j = 0; j & tmpString[i]. 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. i++) {//遍历数组
tmpString[i] = new String[dis.readInt()];//读取子数组长度
for (int j = 0; j & tmpString[i]. j++)//遍历子数组
tmpString[i][j] = dis.readUTF();//读取字符串
}
dis.close();
相关资料:|||||||怎么将String类型的二维数组中的元素用FileOutputStream的write方法生成一个文件来源网络,如有侵权请告知,即处理!编程Tags:                &                    一个类里有string类型数据,是不是不能用ofwrite写入文件??_百度知道
一个类里有string类型数据,是不是不能用ofwrite写入文件??
我有更好的答案
http://bbs.csdn.net/topics/
其实我想string是不安全的
不删除pA正确的原因是:即使你新new出来的A指针仍然分配的是原来单元的内容,因为你可以在调试的时候跟踪,str确实是先前pA的地址,所以起内容显示的仍然是pA 的内容,而真正意义上的p的str没有被赋值,如果不相信,你可以试一试将pA delete之后再设为NULL,然后再new一次,你这个时候得到的p的str是空值。
我想最主要的原因是string 是一个对象,他的赋值和地址分配是和字符串是不同的,因为他的所有信息不一定一次性给出。在fread的时候你试图让p的内存直接覆盖为文件中的内容,这样是不可能将string正确复制的。具体的原因和string的实现有关系。
其实我以前已经犯过这个问题,试图将一块包含string或其他stl的内存从windows发送到unix...
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C#如何判断文件处于打开状态_百度知道
C#如何判断文件处于打开状态
提问者采纳
int result =FileS); Console.FileIsOpen(testFilePath)!File!File.Read(); br.SetupI } } class Program { static void Main(string[] args) { string testFilePath = AppD C BinaryReader br = new BinaryReader(fs);; public static int FileIsOpen(string fileFullName) { if (; int result =FileS result = FileStatus,有时候可能需要判断某个文件是否已经被打开; return 0; public static int FileIsOpen(string fileFullName) { if (;文件被关闭&quot.Read): [csharp] class Program { static void Main(string[] args) { string testFilePath = AppD C Console, FileMode.FileIsOpen(testFilePath); } CloseHandle(handle), int iReadWrite); return 0; } }测试.OpenOrCreate.Close(); BinaryReader br = new BinaryReader(fs).WriteLine(result).CurrentD } IntPtr handle = _lopen(fileFullName.WriteLine(result); } } public class FileStatus { [DllImport(&quot.WriteLine(result).WriteLine(&quot, FileAtestOpen.ApplicationBase + @&quot.Close();)] private static extern IntPtr _lopen(string lpPathName。
[csharp] public class FileStatus { [DllImport(& FileStream fs = new FileStream(testFilePath.dll&quot.OpenOrCreate.ReadLine(),也就是指是否被某个流连接着.FileIsOpen(testFilePath); private static readonly IntPtr HFILE_ERROR = new IntPtr(-1);)] private static extern bool CloseHandle(IntPtr hObject).ApplicationBase + @&quot.WriteLine(&quot.WriteLine(&quot.dll&).ReadLine(); result = FileSkernel32;文件被关闭&文件被打开&quot.dll&; private const int OF_READWRITE = 2。这在对文件的读写比较频繁的程序中尤为重要; private const int OF_READWRITE = 2;文件被打开&kernel32.Read); } CloseHandle(handle).WriteLine(&quot.Read();)] private static extern IntPtr _lopen(string lpPathN [DllImport(&), FileAtestO Console,因为一个文件同一时刻只能有一个流连接的;kernel32。下面的代码也许能有所帮助; FileStream fs = new FileStream(testFileP C Console, OF_READWRITE | OF_SHARE_DENY_NONE).WriteLine(result), int iReadWrite); C private const int OF_SHARE_DENY_NONE = 0x40.FileIsOpen(testFilePath).txt& C)] private static extern bool CloseHandle(IntPtr hObject).SetupI br对于应用程序.dll& [DllImport(&quot, FileM).txt& private static readonly IntPtr HFILE_ERROR = new IntPtr(-1); private const int OF_SHARE_DENY_NONE = 0x40; if (handle == HFILE_ERROR) { return 1, OF_READWRITE | OF_SHARE_DENY_NONE); } IntPtr handle = _lopen(fileFullName.Exists(fileFullName)) { return -1.CurrentD if (handle == HFILE_ERROR) { return 1;kernel32.Exists(fileFullName)) { return -1; } }结果; Console
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 java将string写入文件 的文章

 

随机推荐