`

使用对象流实现将大量的数据输入磁盘缓存,并且将它们读出来。

    博客分类:
  • java
 
阅读更多
package com.sun;
/**
* 使用对象流实现将大量的数据输入磁盘缓存,并且将它们读出来。
*/

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class Testobject {

public static void main(String[] args) throws IOException, ClassNotFoundException {
//使用动态数组将对象存入其中
List<Student> list=new ArrayList<Student>();
for(int i=0;i<10;i++){
Student stu=new Student("张"+i,i+10);
list.add(stu);
}
//利用对象流将对象存到student.dat这个文件里
File f=new File("student.dat");
FileOutputStream fos=new FileOutputStream(f);
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(list);
oos.flush();
fos.flush();
oos.close();
fos.close();
//将对象输出,用到了对象输出流
FileInputStream fis=new FileInputStream(new File("Student.dat"));
ObjectInputStream ois=new ObjectInputStream(fis);
List<Student> list1=(List<Student>)ois.readObject();
for(Student s:list1){
System.out.println(s);
}

ois.close();
fis.close();


}

}


class Student implements Serializable{
/**
* 创建一个学生类并将使其实现Serializable接口
*/
private static final long serialVersionUID = 1L;
private String name;
private int id;

public Student() {
super();
}


@Override
public String toString() {
// TODO Auto-generated method stub
return getClass().getName()+"\t"+name+"\t"+id;
}


public Student(String name, int id) {
super();
this.name = name;
this.id = 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 输入输出流 源码

    6. **缓冲流**:BufferedInputStream、BufferedOutputStream、BufferedReader和BufferedWriter提供了一种缓存机制,可以一次性读取或写入大量数据,从而提高性能。 7. **过滤流**:FilterInputStream、...

    AsyncTask带缓存的网络数据异步加载

    Android提供了多种缓存策略,如内存缓存(`LruCache`)和磁盘缓存(`SQLite`数据库、`SharedPreference`或`File`系统)。 结合`recyclerView`和`listView`,这些视图组件常用于展示大量数据,如网络获取的列表。...

    Asynctask异步加载带图的listview,加入lru缓存机制

    - 使用内存和磁盘双重缓存,当内存缓存溢出时,将数据写入磁盘。 - 使用Picasso、Glide等库,它们内置了缓存机制,可以简化图片加载过程。 - 考虑使用RecyclerView替代ListView,因为它有更好的性能优化。 总之,...

    流和内存流进行转换

    - 数据处理:在处理大量数据时,内存流可以帮助我们分块读取和写入,避免一次性加载整个文件到内存中导致的性能问题。 - 文件操作:在读取、修改和写回文件时,可以先将文件内容读入内存流,处理后写回,这样可以...

    java输入输出流

    同时,利用缓冲流、异步IO等技术手段,可以显著提高程序的运行效率,特别是在处理大量数据时。 #### 六、高级应用与设计模式 ##### 字符集编码问题 处理字符集编码问题是IO编程中的常见挑战,尤其是当数据来源于...

    java将数据写入内存,磁盘的方法

    `Ehcache`是一个本地内存缓存,它支持内存和磁盘存储,并且可以设置缓存策略来决定何时将数据移入或移出内存。`Memcached`则是一个分布式缓存系统,通常应用于多服务器环境,它可以将数据存储在内存中,提供快速的...

    模拟文件管理系统、设计思想、数据结构设计、实体关系图、数据流图、程序流程图、结果分析等

    在构建一个文件管理系统时,设计思想、数据结构设计、实体关系图(ER图)、数据流图(DFD)和程序流程图是至关重要的组成部分。这些工具和技术帮助我们规划、理解和实现一个高效、可扩展的系统。 首先,设计要求是...

    All-in-cache:缓存和处理序列化对象

    序列化是将对象转换为字节流的过程,以便可以存储在磁盘上、通过网络发送或在不同时间恢复为原始对象。在缓存中处理序列化对象时,我们需要关注以下几点: 1. **序列化协议**:Java内置了默认的序列化机制,但也...

    librarymanagementsystem.rar

    为了提高效率,Java提供了缓冲流BufferedInputStream和BufferedOutputStream,它们可以缓存数据,减少频繁的磁盘I/O操作。此外,ObjectInputStream和ObjectOutputStream允许我们将Java对象序列化和反序列化,这对于...

    Java4Android 34_Java当中的IO(三)

    缓冲区允许我们一次性读取或写入大量数据,而不是一次一个字节,从而减少了磁盘或网络I/O的次数。 转换流是Java IO中的另一个重要概念,它允许我们在字节流和字符流之间进行转换。InputStreamReader和...

    IE缓存提取2014-2-14 绿化包.rar

    附带直接查看,按类显示等”,意味着这个软件不仅能够帮助用户提取缓存中的各种类型的数据,如图片、HTML文件、Flash对象等,还提供了查看这些文件的功能,用户可以无需通过浏览器直接打开它们。更重要的是,它支持...

    java.io的基础应用

    此外,还有缓冲流、过滤流和转换流等概念,它们分别提供了缓存数据、添加功能和不同流之间的转换等能力。 1. **文件拷贝**:在Java中,我们可以使用`FileInputStream`和`FileOutputStream`来实现文件的复制。这段...

    listview item 异步加载数据图片

    3. **处理缓存**:为了提高性能和减少网络请求,可以将图片缓存在内存或磁盘。Picasso和Glide都内置了高效的缓存策略。 4. **优化滚动**:当ListView滚动时,避免不必要的图片加载。可以复用convertView(通过`...

    Java IO 性能优化

    3. **缓存序列化结果**:对于频繁访问的对象,可以缓存它们的序列化形式,以减少重复序列化带来的开销。 4. **压缩数据**:在序列化数据之前对其进行压缩可以减少传输的数据量,特别是在网络传输中非常有用。 5. **...

    c#操作excel 导入导出 还有计算

    4. **处理大型数据集**:当处理大量数据时,效率和内存管理成为关键。EPPlus库特别适合这种情况,因为它可以直接将数据写入内存中的表格模型,避免了逐个单元格操作的低效。同时,它还支持批处理写入,进一步提高了...

    Redis面试题.pdf

    - **集群模式**:适用于需要处理大量数据或高并发请求的应用场景。 - **哨兵模式**:适用于对服务连续性和数据一致性要求较高的场景。 #### 22. 在使用Redis时,如何进行性能优化?请列举几种常见的Redis性能优化...

    Redis缓存技术安装包文件.rar

    5. 集群搭建:如果需要处理大量数据或提高可用性,可以通过Redis Cluster搭建分布式集群。 6. 性能优化:提供一些调优技巧,如调整配置参数、内存管理、客户端连接控制等。 7. 安全性:讨论如何保护Redis免受攻击...

    python制作磁盘清理.rar

    C盘通常作为操作系统的主要安装位置,随着时间的推移,它可能会积累大量的临时文件、日志文件、系统更新缓存、不再使用的软件等,这些都会占用宝贵的磁盘空间。定期进行C盘清理有助于保持系统的稳定性和性能。 ...

    android 异步加载

    在Android开发中,异步加载是一项关键的技术,主要用于提高用户体验,特别是当处理大量数据或进行耗时操作时,如在ListView、RecyclerView等滚动视图中加载图片。本篇将深入探讨Android异步加载的原理、实现方式以及...

    文件读取(关于C##)

    - 对于大量数据的读取,可以使用BufferedStream来缓存数据,减少磁盘I/O次数,提高读取速度。 8. 文件路径处理: - 文件路径可以是绝对路径或相对路径。相对路径是相对于执行程序的位置,而绝对路径是完整的文件...

Global site tag (gtag.js) - Google Analytics