导航:首页 > 编程语言 > java文件流转文件对象

java文件流转文件对象

发布时间:2021-10-24 16:09:39

java怎么把数据流转换成对象

首先,要想把数据流转换成对象,要先将数据流对应的对象序列化,然后反序列化,出来就是对象了;
协议你不能定,但是你肯定知道报文的格式吧(前10位代表 报文头A,11位到20位代表报文头B);
你把buffer里边的内容按字段解析出来,然后构造一个对象就行了。

② 请问各位如何将一个文件流转换成文件对象(不创建本地文件)

Java中文件(File)的概念,其实是"路径" ,连Thinking in Java上都这么说.

但是流作为资源,不是抽象的概念,必须有其载体的,即一个实体的"文件".

当然你可以把流写到一个临时文件,即
File temp = File.createTempFile()里.

FileOutputStream fos = new FileOutputStream(temp);

...

③ java中如何将流转换成文件类型

我查了一下,File的api 这个File的构造方法的介绍。。。

File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。

也就意味着,如果,file这种类型,就必须有一个路径。
那,能不能在内存中虚拟一个File file呢?
File f = new File("/1.txt");
假如这样,那么,一旦,你开始往这个file里面开流写内容。只有两种情况可能发生,一种是找不到文件,抛异常。另外一种可能是,直接create了一个文件出来,并且写进去这个文件~~

所以,如果是这样的情况,就很郁闷。

那么,在user对象中,如果非要放File文件类型格式,那么,就写到一个临时文件里吧。等用完之后删除。
如果该成byte[] 或者别的内容,如果你要用数据,其实会更加方便,不用开流从文件里面读取,而是直接从这个数组里面读就是了。

所以,建议把这个User里面的文件变成byte[] 。

一点浅见~~

另祝节日愉快~~

④ java如何将对象写入文件

假设创建了5个对象per1---per5
Vector<Person> account = new Vector<Person>();
account.add(per1);
......
account.add(per5);
直接添加即可
Vector 现在用了比较少了
已经被ArrayList替代了
ArrayList效率比较高些

static void test1() throws Exception {
Person stu = new Person(
"张三专",12,"M",60);
// 对象的序列化流
ObjectOutputStream out =
new ObjectOutputStream(
new FileOutputStream("d:/d.dat"));
out.writeObject(stu);
out.flush();
out.close();
}
输出到文件的话属用这个就可以了
ObjectOutputStream 这个要导包

⑤ java如何从文件中读取对象并用set保存

java中从文件中读取对象,主要是使用ObjectInputStream的readObject方法来读取对象,如下代码

()
{
Objecttemp=null;
Filefile=newFile("test.dat");
FileInputStreamin;
try{
in=newFileInputStream(file);
ObjectInputStreamobjIn=newObjectInputStream(in);
temp=objIn.readObject();//从文件当中读取对象
Set<Object>ixiang=newHashSet<Object>();
ixiang.add(temp);//添加对象到set集合里面
objIn.close();
System.out.println("readobjectsuccess!");
}catch(IOExceptione){
System.out.println("readobjectfailed");
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
returntemp;
}

⑥ Java 如何对文件进行多个Object对象流的读写操作

思路:把已经序列化的对象存入容器(如LinkedList<?>)中,然后用ObjectInputStream和ObjectOutputStream对这个实例化的LinkedList<?>对象进行读写。测试主程序:/** * @Title: FileRW.java * @Package com.file * @Description: 文件、文件夹的创建、写入练习。读写是使用对象流实现。 * @author 慢跑学Android * @date 2011-11-19 下午03:53:01 * @version V1.0 */ package com.file; 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.util.LinkedList; public class FileRW { private String dirPath; private String filename; public static void main(String[] args) { String path = "C:\\晓声"; String fileName = "test.txt"; FileRW fileRW = new FileRW(path, fileName); LinkedList<TestMessage> msgOut = new LinkedList<TestMessage>(); LinkedList<TestMessage> msgIn = null; msgOut.add(new TestMessage("柯南", "偶像")); msgOut.add(new TestMessage("卡卡西", "好样的")); msgOut.add(new TestMessage("Android", "Android")); msgOut.add(new TestMessage("哈哈", "测试下喔")); fileRW.writeObject(path, fileName, msgOut); msgIn = fileRW.readObject(path,fileName); for(TestMessage temp:msgIn) { System.out.println(temp.getName() + temp.getData()); } } public FileRW(String dirPath, String filename) { this.dirPath = dirPath; this.filename = filename; if (creatDir()) { creatFile(); } } private boolean creatDir() { if (null != dirPath) { File path = new File(dirPath); if (path.exists()) { return true; } if (true == path.mkdirs() ) { return true; } } return false; } private void creatFile() { if (null != filename) { File file = new File(dirPath, filename); if (false == file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } } /** * @Title: writeObject * @Description: Write a object to a file. * @param path the directory of the target file * @param filename the name of the target file * @param msg the type of the object * @return void * @throws */ private void writeObject(String path, String filename, LinkedList<TestMessage> msg) { File file = new File(path, filename); if (false == file.isFile()) { return ; } try { // The value "false" for FileOutputStream means that overwrite this file, // if it is "true",append the new data to this file. ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file,false)); oos.writeObject(msg); oos.flush(); oos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * @Title: readObject * @Description: Read a object from a file. * @param path the directory of the target file * @param filename the name of the target file * @return LinkedList<TestMessage> * @throws */ @SuppressWarnings("unchecked") private LinkedList<TestMessage> readObject(String path, String filename) { File file = new File(path, filename); ObjectInputStream ois = null; LinkedList<TestMessage> msgAll = null; try { ois = new ObjectInputStream(new FileInputStream(file)); try { msgAll = (LinkedList<TestMessage>)ois.readObject(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { ois.close(); } catch (IOException e) { e.printStackTrace(); } } return msgAll; } } 测试程序中的消息包定义:/** * @Title: TestMessage.java * @Package com.file * @Description: FileRW的消息流 * @author 慢跑学Android * @date 2011-11-19 下午04:35:11 * @version V1.0 */ package com.file; public class TestMessage implements java.io.Serializable { private String name; private String data; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getData() { return data; } public void setData(String data) { this.data = data; } public TestMessage(String name, String msg) { this.name = name; data = msg; } } 程序运行结果:参考资料:ObjectInputStream类和ObjectOutputStream类的使用

⑦ java输出一个对象到文件

先创建一个文件对象:
File file = new File("");
if (!file.exists())
file.createNewFile();
然后创建一个文件输出流
FileOutputStream fos = new FileOutputStream(file);
然后可以把一个对象用.toString()方法转换成字符串。
然后再用.getBytes()转换成字符数组。
byte[] bytes = "".getBytes();
写入文件:
fos.write(bytes);

⑧ java从文件读取对象

可以使用 ObjectOutputStream 将对象写入文件中,使用 ObjectInputStream 类从文件中读取出对象。

代码如下:

importjava.io.EOFException;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutputStream;
importjava.io.Serializable;
importjava.util.ArrayList;
importjava.util.List;

{

=-3527230407404080537L;

privateStringname;

privateintage;

publicPerson(Stringname,intage){
this.name=name;
this.age=age;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicintgetAge(){
returnage;
}

publicvoidsetAge(intage){
this.age=age;
}

@Override
publicStringtoString(){
return"Person[name="+name+",age="+age+"]";
}
}

publicclassApp34{

publicstaticvoidmain(String[]args)throwsIOException,ClassNotFoundException{

List<Person>persons=newArrayList<>();

persons.add(newPerson("张三",20));
persons.add(newPerson("李四",25));

Filefile=newFile("persons.data");

//创建文件输出流
FileOutputStreamoutput=newFileOutputStream(file);

//创建对象输出流
ObjectOutputStreamoOutput=newObjectOutputStream(output);

//将整个数组列表输出至文件
oOutput.writeObject(persons);

//或者逐个将对象输出至文件,读取时需要逐个读取
/*for(Personp:persons){
oOutput.writeObject(p);
}*/

oOutput.close();
output.close();



//创建文件输入流
FileInputStreaminput=newFileInputStream(file);

//创建对象输入流
ObjectInputStreamoInput=newObjectInputStream(input);

//读出整个对象列表
List<Person>persons2=(List<Person>)oInput.readObject();

for(Personp:persons2){
System.out.println(p);
}


//或者逐个读取对象
/*Personp1=null;
try{
while((p1=(Person)oInput.readObject())!=null){
System.out.println(p1);
}
}catch(EOFExceptione){
System.out.println("读取对象结束");
}*/

oInput.close();
input.close();
}
}

⑨ JAVA能否把一个对象写入文件(请高手指点)

可以,使用对象序列化;可以以流的方式写入文件,读取是自动还原为对象;

⑩ 怎么用JAVA文件流读取文件然后保存到对象中

应用public ObjectInputStream(InputStream in)构造一个ObjectionInputStream对象ois,再应用ois的版public final Object readObject()读取一个Object对象强制权转换为你对象。
ObjectionInputStream ois=new ObjectionInputStream(in);
Object o=ois.readeObject();

阅读全文

与java文件流转文件对象相关的资料

热点内容
大数据与工作计划 浏览:750
苹果fc2live成人频道 浏览:170
word文档显示回车符 浏览:883
mysql不用密码 浏览:708
手机文件管理的图片 浏览:593
系统更新准备工具网页 浏览:29
iphone4充电图标 浏览:841
能源大数据分析 浏览:803
长沙网络技术培训机构 浏览:673
三大数据库简介 浏览:343
学编程有哪些好的软件 浏览:168
西门子s7300编程电缆哪个好用 浏览:197
jsp中script标签 浏览:483
linuxdns测试工具 浏览:19
学生用什么编程 浏览:27
苹果怎么看缓存的文件在哪里 浏览:785
用光盘引导linux系统安装教程 浏览:956
ps如何将元素复制到另外一个文件 浏览:651
win10删除文件怎么用管理员权限 浏览:941
qq监控文件删除 浏览:58

友情链接