基础篇——序列化和文件的输入输出

一、对象序列化(存储)

FileOutputStream fileStream = new FileOuputStream("file.ser");
ObjectOutputStream os = new ObjectOutputStream(fileStream);
os.writeObject(one);//Help one = new Help();
os.writeObject(two);
os.close();

当对象被序列化时,被该对象引用的实例变量也会被序列化,且所有被引用的对象都会被序列化。

要想类被序列化,必须实现Serializable:

public class Box implements Serializable{
private int x;
transient String y;
Animal a = new Animale();
...
}
public class Animal{
...
}

x会被保存;y不会被序列化,transient标记的变量被跳过;a不会,因为Animal类没有实现Serializable。

二、解序列化

FileInputStream fileStream = new FileInputStream("file.ser");
ObjectInputStream is = new ObjectInputStream(fileStream);
Object one = is.readObject();
Object two = is.readObject();
Help oneHelp = (Hlep)one;
Help twoHelp = (Hlep)two;
is.close();

三、文件读写

File myFile = new File("MyText.txt");
FileReader fileReader = new FileReader(myFile);
BufferedReader reader = new BufferedReader(fileReader);
while reader.readLine() != null
reader.close();
File myFile = new File("1.txt");
FileWriter fileWriter = new FileWriter(myFile);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write("hello");
writer.close();

四、目录操作

File dir = new File("dir1");
dir.mkdir();
if(dir.idDirectory()){
String [] dirContents = dir.list();
for(int i = 0;i < dirContents.length;i++){
System.out.println(dirContents[i]);
}
}
System.out.println(dir.getAbsolutePath());
dir.delete();

基础篇——序列化和文件的输入输出

时间: 2024-10-12 18:33:37

基础篇——序列化和文件的输入输出的相关文章

Linux 磁盘管理 基础篇--创建基本文件分区

1 概述 本文通过对讲解了磁盘的基本概念,分区,创建文件系统,挂载,卸载等步骤进行讲解.使得用户能够创建基本的磁盘并挂载使用空间. 2 磁盘基本概念 2.1 磁盘空间 每个扇区大小是512byte,这是磁盘的最小单位 每一个磁道上有多少个扇区就是扇区数 sectors 每一圈叫做磁道(track),最外面的叫做0磁道 依次往里增加,最里面的磁道数最大 每个盘有两个面,都有两个磁头(head)读取数据 相同的磁道组成的叫做柱面(cylinder),同样最外面叫0柱面,最里面柱面数最大 因此, 每个

Linux基础篇-/etc/fstab文件

文件系统配置文件 /etc/fstab OS在初始时,会自动挂载此文件中定义的每个文件系统 格式: 要挂载的设备  挂载点  文件系统类型  挂载选项   转储频率 (每多少天做一个完整备份) 文件系统检测次序 (只有根可以为1,0为不检测) /dev/sda5 /mnt/test ext4 default,acl 0 0 mount -a :挂载/etc/fstab文件中定义的所有文件系统 fuser:验证进程正在使用的文件或套接字文件 -v: 查看某文件上正在运行的进程 fuser -v  

Linux基础篇三——链接文件知多少

As is known to all,在windows环境下我们早已经见过链接文件,机我们平时所使用的快捷方式. 其实,在linux里我们可以见到以下两种类型的链接文件 a.硬链接文件 创建命令:ln [源文件] [目标文件] 硬链接即实际链接. 记得我们讲过什么叫做inode,那么我们来根据下图理解一    这样做的意义是:安全.如果你不慎删除了其中一个文件名那么你还可以通过其他文件来找到这个源文件 并且你修改一个文件其他的文件也会跟着被修改 *上图中能看到,这两个文件的信息是一模一样的 实际

Python基础学习代码之文件和输入输出

import os ls = os.linesep def func1():     filename = raw_input('enter file name:')     f = open(filename,'w')     while True:         alline = raw_input("enter a line ('.' to quit):")         if alline != '.':             f.write("%s%s&quo

Linux基础篇五:文件操作篇(三剑客)

cut截取字段: -d  指定分割符 -f   指定第几列 例题1: echo "i am dusonglin ,my qq is  380343680 " >dusonglin.txt   ,请过滤读取文件里面的dusonglin以及 380343680 cut -d " " -f  3 7  dusonglin.txt awk :按列进行分割 -F  "分割符"  '{print $1,$2}'     $1代表第一列 sed :替换的

小猪猪逆袭成博士之C++基础篇(二) 常量、处理类型、自定义头文件

小猪猪逆袭成博士之C++基础篇(二) const .auto. decltype 上一章我们介绍了一些常用的类型和常见的问题,下面再介绍一些学习的时候不是特别常用但是在实际工程中很有用的一些东西. 一.常量const 我们想要定义一种不能改变它的值的变量,我们就对这个变脸的类型加上限定符Const. Const 对象必须要初始化,并且它一旦创建了就不能改变,所以Const变量是只能出现在等号的右边的. 另外,在C11标准中会有一种Constexpr的类型来编译器验证变量的值是是否是一个常量表达式

单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例

本范例主要由(main.c ,delay.h,delay.c,makefile)4个文件组成,sdcc的编译环境搭建参照:单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境,废话不多,进入主题: main.c(主函数) 1 #include "8051.h" 2 #include "delay.h" 3 #define uint unsigned int 4 #define uchar unsigned char 5 uchar t

PE文件解析 基础篇

PE文件解析 基础篇 来源 https://bbs.pediy.com/thread-247114.htm 前言 之前学习了PE格式,为了更好的理解,决定写一个类似LoadPE的小工具. 编译器是VS2015,采用MFC框架. 此系列文章采用边介绍知识点,边写代码的形式,以免变的无聊丧失兴趣. PE知识请参照<加密与解密>第10章 文章有错误或则不清楚的地方还请您指出. PE文件格式 1.PE文件基本概念 PE文件是windows系统中遵循PE结构的文件,比如以.exe   .dll为后缀名的

Spark性能优化指南——基础篇

前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作,应用范围与前景非常广泛.在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark.大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快.性能更高. 然而,通过Spark开发出高性能的大数据计算作业,并不是那么简单的.如果没有对Spar