java 中怎么把一个数组中写入文件然后再读到一个数组中? 问题如题:不知道java中怎么把数组写入到一个文件中然后读到一个数组中?数组内容是float类型。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单些就把float转成String,用分隔符保存到文件,然后读取专业些就用bytebuffer,转成byte用16进制保存到文件用序列化readObject和writeObject也可以 如果只是为了复制数组. 为何不直接copy? import java.io.*;public class test{public static void main(String [] args){ String [] ss={"sss","ss3","ss4"}; String [] tem; try{ ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("www.txt")); oos.writeObject(ss); ObjectInputStream ois=new ObjectInputStream(new FileInputStream("www.txt")); tem=(String[])ois.readObject(); for(int i=0;i<tem.length;i++){ System.out.println(tem[i]); } } catch(FileNotFoundException e){ } catch(ClassNotFoundException e){ } catch(IOException e){ } }} 我写了一个专门操作float类型的读写,用到的是DataInputStream和DataOutputStream字节流。public class ArraysDemo { float[] read() { try { DataInputStream dataIn = new DataInputStream(new FileInputStream( "demo.txt")); float[] ff = new float[3]; // 此处这个3是固定的,你想办法把它变活! // (提示:先读一遍所有,再把数字把数字得到) float f = 0.0F; int i = 0; do { try { f = dataIn.readFloat(); } catch (Exception ex) { break; } ff[i] = f; i++; } while (dataIn.available() != 0); dataIn.close(); return ff; } catch (FileNotFoundException ex) { System.out.println(ex.getMessage()); } catch (IOException ex) { System.out.println(ex.getMessage()); } return null; } void write(float[] ff) { try { DataOutputStream dataOut = new DataOutputStream( new FileOutputStream("demo.txt")); for (int i = 0; i < ff.length; i++) { dataOut.writeFloat(ff[i]); } dataOut.flush(); dataOut.close(); } catch (IOException ex) { System.err.println(ex.getMessage()); } } public static void main(String[] args) { ArraysDemo o = new ArraysDemo(); // 写 float[] ff = {1.1F, 1.2F, 1.3F}; o.write(ff); // 读 ff = o.read(); for (int i = 0; i < ff.length; i++) { System.out.println(ff[i]); } }} // 你把do...while循环条件dataIn.available() != 0改为true吧,那个条件没用。http://topic.csdn.net/u/20081130/15/2ee11370-774f-4e7f-9700-d22116b2e2dd.html 如何把工具栏添加图标,就像保存就是一个磁盘的小图标一样? Vector集合 图像的像素点RGB提取 //关于类中传递实例的问题,想不明白,为什么会这样. 谁用过Tomcat6.0??? 过路的大虾帮哈忙啊?怎么将javaGUI表格里面的数据转到Office的Excel里面? 簡單問題 [请问]在JSP中如何使用带有路径的applet? 关于java多线程wait()和notify()的问题 请问如何不显示applet的启动信息? 一个java模拟的网球输赢概率题目,求解过程中遇到怪异现象 求一个xml转化的API
用序列化readObject和writeObject也可以
import java.io.*;
public class test{
public static void main(String [] args){
String [] ss={"sss","ss3","ss4"};
String [] tem;
try{
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("www.txt"));
oos.writeObject(ss);
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("www.txt"));
tem=(String[])ois.readObject();
for(int i=0;i<tem.length;i++){
System.out.println(tem[i]);
}
}
catch(FileNotFoundException e){
}
catch(ClassNotFoundException e){
}
catch(IOException e){
}
}
}
我写了一个专门操作float类型的读写,用到的是DataInputStream和DataOutputStream字节流。public class ArraysDemo { float[] read() {
try {
DataInputStream dataIn = new DataInputStream(new FileInputStream(
"demo.txt"));
float[] ff = new float[3]; // 此处这个3是固定的,你想办法把它变活!
// (提示:先读一遍所有,再把数字把数字得到)
float f = 0.0F;
int i = 0;
do {
try {
f = dataIn.readFloat();
} catch (Exception ex) {
break;
}
ff[i] = f;
i++;
} while (dataIn.available() != 0);
dataIn.close(); return ff;
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage());
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
return null;
} void write(float[] ff) {
try {
DataOutputStream dataOut = new DataOutputStream(
new FileOutputStream("demo.txt"));
for (int i = 0; i < ff.length; i++) {
dataOut.writeFloat(ff[i]);
}
dataOut.flush();
dataOut.close();
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
}
public static void main(String[] args) {
ArraysDemo o = new ArraysDemo();
// 写
float[] ff = {1.1F, 1.2F, 1.3F};
o.write(ff);
// 读
ff = o.read();
for (int i = 0; i < ff.length; i++) {
System.out.println(ff[i]);
}
}
}
// 你把do...while循环条件dataIn.available() != 0改为true吧,那个条件没用。
http://topic.csdn.net/u/20081130/15/2ee11370-774f-4e7f-9700-d22116b2e2dd.html