最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java操作IO對(duì)象流進(jìn)行數(shù)據(jù)的讀寫

 更新時(shí)間:2021年07月01日 10:35:00   作者:幻影寒狼  
這篇文章主要介紹了Java操作IO對(duì)象流進(jìn)行數(shù)據(jù)的讀寫,本文通過(guò)例子逐步介紹了java如何操作IO流,和文字解析,需要的朋友可以參考下

對(duì)象的讀寫
使用ObjectInputStream和ObjectOutputStream讀寫對(duì)象(序列化與反序列化)。

只有字節(jié)流沒(méi)有字符流

  1. .類必須實(shí)現(xiàn)Serializable接口
  2. 給類加個(gè)序列化編號(hào),給類定義一個(gè)標(biāo)記,新的修改后的類還可以操作曾經(jīng)序列化的對(duì)象
  3. 靜態(tài)是不能被序列化的,序列化只能對(duì)堆中的進(jìn)行序列化 ,不能對(duì)“方法區(qū)”中的進(jìn)行序列化
  4. 不需要序列化的字段前加 transient

小例子:

先創(chuàng)建一個(gè)Dog對(duì)象并序列化:

package com.uwo9.test03;
 
import java.io.Serializable;
 
public class Dog implements Serializable {
	private static final long serialVersionUID = 2809685095868158625L;
	String name;
	String color;
}

再創(chuàng)建一個(gè)Student對(duì)象并序列化:

package com.uwo9.test03;
 
import java.io.Serializable;
 
public class Student implements Serializable {
	private static final long serialVersionUID = 9078616504949971001L;
	static public  String schoolName;
	private transient String name;
	private transient int age;
	private double score;
	private Dog dog;
	public Student() {
		super();
	}
	public Student(String name, int age, double score, Dog dog) {
		super();
		this.name = name;
		this.age = age;
		this.score = score;
		this.dog = dog;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", score=" + score + "]";
	}
 
}

將數(shù)據(jù)寫入對(duì)象流并存入文件

package com.uwo9.test03;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;
 
public class Test01 {
 
	public static void main(String[] args) {
		Dog dog = new Dog();
		dog.name = "大黃";
		dog.color = "Yellow";
		Student student1 = new Student("學(xué)生1", 18, 99,dog);
		Student student2 = new Student("學(xué)生2", 19, 99,dog);
		Student student3 = new Student("學(xué)生3", 20, 99,dog);
		Student.schoolName = "某某大學(xué)";
		File file = new File("E:/Temp/Test1.txt");
		ObjectOutputStream oos = null;
		try {
			oos = new ObjectOutputStream(new FileOutputStream(file));
			//oos.writeObject(student);
			ArrayList<Student> arrayList = new ArrayList<>();
			Collections.addAll(arrayList, student1,student2,student3);
			oos.writeObject(arrayList);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				oos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
	}
 
}

從指定文件中讀取對(duì)象

package com.uwo9.test03;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
 
public class Test02 {
 
	public static void main(String[] args) {
		// 從指定的文件中讀取對(duì)象
		File file = new File("E:/Temp/Test1.txt");
		ObjectInputStream ois=null;
		try {
			ois = new ObjectInputStream(new FileInputStream(file));
			// 讀取對(duì)象
			// Student stu = (Student)ois.readObject();
			// System.out.println("讀取到的數(shù)據(jù)為:"+stu);
			@SuppressWarnings("unchecked")
			ArrayList<Student> arrayList = (ArrayList<Student>) ois.readObject();
			for (Student student : arrayList) {
				System.out.println(student);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			try {
				ois.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
 
	}
 
}

到此這篇關(guān)于Java操作IO對(duì)象流進(jìn)行數(shù)據(jù)的讀寫的文章就介紹到這了,更多相關(guān)Java IO流進(jìn)行數(shù)據(jù)的讀寫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的模板模式說(shuō)明與實(shí)現(xiàn)

    Java中的模板模式說(shuō)明與實(shí)現(xiàn)

    這篇文章主要介紹了Java中的模板模式說(shuō)明與實(shí)現(xiàn),模板方法模式,又叫模板模式,在一個(gè)抽象類公開定義了執(zhí)行它的方法的模板,它的子類可以更需要重寫方法實(shí)現(xiàn),但可以成為典型類中定義的方式進(jìn)行,需要的朋友可以參考下
    2023-10-10
  • Java字節(jié)流與基本數(shù)據(jù)類型的轉(zhuǎn)換實(shí)例

    Java字節(jié)流與基本數(shù)據(jù)類型的轉(zhuǎn)換實(shí)例

    本篇文章主要介紹了Java字節(jié)流與基本數(shù)據(jù)類型的轉(zhuǎn)換實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java 從互聯(lián)網(wǎng)上爬郵箱代碼示例

    Java 從互聯(lián)網(wǎng)上爬郵箱代碼示例

    這篇文章介紹了Java 從互聯(lián)網(wǎng)上爬郵箱的有關(guān)內(nèi)容,主要是一個(gè)代碼示例,小編覺(jué)得挺不錯(cuò)的,這里給大家分享下,需要的朋友可以了解。
    2017-10-10
  • Java根據(jù)表達(dá)式獲取對(duì)象中的值及設(shè)置值的例子

    Java根據(jù)表達(dá)式獲取對(duì)象中的值及設(shè)置值的例子

    這篇文章主要介紹了Java根據(jù)表達(dá)式獲取對(duì)象中的值及設(shè)置值的例子,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-03-03
  • JVM參數(shù)NativeMemoryTracking的使用

    JVM參數(shù)NativeMemoryTracking的使用

    本文主要介紹了JVM參數(shù)NativeMemoryTracking的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 23種設(shè)計(jì)模式(4) java生成器模式

    23種設(shè)計(jì)模式(4) java生成器模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java生成器模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 最新評(píng)論

    凤阳县| 安陆市| 安化县| 苏尼特左旗| 庆安县| 晋江市| 连城县| 天台县| 慈溪市| 延寿县| 佛山市| 木里| 侯马市| 股票| 吉隆县| 中方县| 青州市| 闵行区| 桦甸市| 于田县| 冕宁县| 原阳县| 东城区| 加查县| 彭州市| 盱眙县| 黄骅市| 大悟县| 沙田区| 安徽省| 类乌齐县| 全州县| 陈巴尔虎旗| 福海县| 特克斯县| 江安县| 左云县| 抚州市| 城口县| 泽州县| 扶余县|