⑴ java将对象写入大文件产生内存问题
为Data类设置一个set方法,上述for循环外面,Data data=new Data(),for循环里面data.setData(i,i)即可,只用一份Data大小的空间就好了,内存不会紧张
网上查一下看看怎样修改javaw的内存大小设置值,将其改大一些,不过这也要看你的电脑内存多大啊
⑵ JAVA能否把一个对象写入文件(请高手指点)
你问的其实就是Java序列化的问题,这是RMI、分布式应用的基础。
写了个例子给你,挺简单的,如果看不懂的话再补充问题吧。
Test.java
import java.io.*;
public class Test {
public static void main(String args[]) throws Exception{
Person me = new Person();
me.setId(1);
me.setName("haha");
FileOutputStream outstream = new FileOutputStream("library.dat");
ObjectOutputStream out = new ObjectOutputStream(outstream);
out.writeObject(me); //将这个对象写入流
out.close();
ObjectInputStream in = new ObjectInputStream(new FileInputStream("library.dat"));
Person who = (Person)in.readObject();
System.out.println(who.getName());
in.close();
}
}
class Person implements Serializable{
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
⑶ java中将list对象写入文件
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储list对象,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write(list);//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
⑷ java 我想将一个装了对象的arraylist 写入文件,读出文件,请问怎么写代码,改对象的类定义如下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
public class User implements Serializable{
private String name;
private String code;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public User(String name, String code) {
super();
this.name = name;
this.code = code;
}
public static void writeUser(ArrayList<User> userList,File file){//file 为写入的文件
ObjectOutputStream oos;
try {
if(!file.exists())
file.createNewFile();
oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(userList);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
有疑问可追问或者hi
⑸ Java:内存中已经有了一个对象,如何使用ByteArrayOutputStream将该对象写入文件呢
ByteArrayOutputStream是将内存中的byte数据作为输出目标,
写入到文件则需要打开文件流,
内存中的对象要持久化有两种方式,一种是直接使用对象的序列化接口,该对象必须实现Serializable接口;另外一种自己写对象序列化接口。
1、ByteArrayOutputStream要写到文件可以通过writeTo方法,但是这样显然太啰嗦了,需要控制flush时机。
2、如果是对象已经实现序列化接口直接使用如下方式
ObjectOutputStreamo=newObjectOutputStream(newFileOutputStream("filename"));
o.writeObject(obj);
⑹ java io 对象写入了txt文件,怎样读取对象
File file = new File("你的文件路径");
InputStream in = new FileInputStream(file);
...
读入流以后可以写到String
⑺ java中如何将一个对象写入文本中,如现在student创建了一对象,
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutputStream;
importjava.io.Serializable;
{
=-6601903208557464574L;
privateStringid;
privateStringname;
publicStudent(){
super();
}
publicStudent(Stringid,Stringname){
super();
this.id=id;
this.name=name;
}
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
{
publicstaticvoidmain(String[]args)throwsIOException,
ClassNotFoundException{
Studento=newStudent("1001","张三");
FileOutputStreamos=newFileOutputStream("D:\student.data");
ObjectOutputStreamoos=newObjectOutputStream(os);
oos.writeObject(o);
oos.flush();
oos.close();
FileInputStreamis=newFileInputStream("D:\student.data");
ObjectInputStreamois=newObjectInputStream(is);
Studentdeserialized=(Student)ois.readObject();
ois.close();
System.out.println("学号:"+deserialized.getId());
System.out.println("姓名:"+deserialized.getName());
}
}
⑻ JAVA 在监听器中怎样写对象到文件中
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
/**
* Title:NewFrame
* Description:
* Copyright: Copyright (c) 2012-12-11
* Company: ETHERGNS-COM
* @author Guzi
* @version 1.0.0
*/
public class NewFrame extends Frame
{
private static final long serialVersionUID = -7322165277682705641L;
public static String path = "test.txt";
public static void main ( String [] args )
{
NewFrame frame = new NewFrame();
frame.setBounds(500, 500, 100, 100);
Button button = new Button("click");
frame.add(button);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter()
{
public void windowClosed ( WindowEvent e )
{
System.exit(-1);
}
});
button.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked ( MouseEvent e )
{
ObjectOutputStream output;
try
{
User user = new User("xx", 22);
output = new ObjectOutputStream(new FileOutputStream(path));
output.writeObject(user);
output.close();
}
catch ( FileNotFoundException e1 )
{
e1.printStackTrace();
}
catch ( IOException e1 )
{
e1.printStackTrace();
}
}
});
}
}
感觉你写的没错啊....我的就可以保存对象......难道是对象不一样的问题?