日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java IO流--练习

發(fā)布時(shí)間:2025/3/20 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java IO流--练习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1)將若干個(gè)Student對象,若干個(gè)Teacher對象,寫出到d:/0404/a.txt中
2)將該文件中所有Student對象反序列化回來裝入List, 所有的Teacher對象反序列化回來轉(zhuǎn)入另外一個(gè)List

運(yùn)用知識(shí)點(diǎn):對象流,文件流

代碼:
邏輯—–>建立一個(gè)Person類,并實(shí)現(xiàn)Serializable。再讓Student和Teacher類繼承Person。(當(dāng)然這里沒必要,可以直接建立Student和Teacher類)

Person類

package Homework;import java.io.Serializable;public class Person implements Serializable {private static final long serialVersionUID = 1L;private String name;private String sex;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";}public Person(String name, String sex, int age) {super();this.name = name;this.sex = sex;this.age = age;}public Person() {super();}}

Student類

package Homework;public class Student extends Person {public Student(String name,String sex,int age){super(name, sex, age);}public Student(){}@Overridepublic String toString() {return "Student [getName()=" + getName() + ", getSex()=" + getSex() + ", getAge()=" + getAge() + "]";} }

Teacher類

package Homework;public class Teacher extends Person {public Teacher(String name,String sex,int age){super(name, sex, age);}public Teacher(){}@Overridepublic String toString() {return "Teacher [getName()=" + getName() + ", getSex()=" + getSex() + ", getAge()=" + getAge() + "]";} }

測試類

package Homework;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.util.ArrayList;public class Test1and2 {public static void main(String[] args) {//在本工程下創(chuàng)建一個(gè)文件夾File file=new File("Instance");file.mkdirs();//在本工程下創(chuàng)建的文件夾下創(chuàng)建一個(gè)a.txt文件,用來寫入對象File file2=new File(file,"a.txt");//使用對象流寫入對象ObjectOutputStream oos=null;ObjectInputStream ois=null;try {file2.createNewFile();//將若干個(gè)Student對象,若干個(gè)Teacher對象,寫入文件中oos=new ObjectOutputStream(new FileOutputStream(file2));oos.writeObject(new Student("李四","男",20));oos.writeObject(new Student("李四2","男",45));oos.writeObject(new Student("李四3","男",38));oos.writeObject(new Teacher("張三","男",13));oos.writeObject(new Teacher("張三","男",50));oos.writeObject(new Teacher("張三","男",34));oos.flush();//將該文件中所有Student對象反序列化回來裝入Listois=new ObjectInputStream(new FileInputStream(file2));ArrayList<Student> list=new ArrayList<>();ArrayList<Teacher> list2=new ArrayList<>();//將文件中寫入的對象讀取出來,并轉(zhuǎn)為對象,存入對應(yīng)的集合中for(int i=0;i<6;i++){if(i<=2){Student student=(Student)ois.readObject();list.add(student);}else {Teacher teacher=(Teacher)ois.readObject();list2.add(teacher);}}//遍歷打印出集合中的對象for (Student student : list) {System.out.println(student);}for (Teacher teacher : list2) {System.out.println(teacher);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if(ois!=null){try {ois.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(oos!=null){try {oos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} }

遍歷結(jié)果:

3)要求從控制臺(tái)輸入兩個(gè)整數(shù),之后完成兩個(gè)整數(shù)的加法操作

如果輸入整數(shù),求和。 如果輸入的不是整數(shù):重新輸入,比如ddd

注意:要求使用標(biāo)準(zhǔn)流,不能使用Scanner類

代碼:

package com.qf.demo2;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Test {public static void main(String[] args) {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));int sum = 0;while(true){try {System.out.println("請輸入第一個(gè)數(shù):");String a = reader.readLine();System.out.println("請輸入第二個(gè)數(shù):");String b = reader.readLine();//對輸入的內(nèi)容進(jìn)行正則匹配,判斷是否是數(shù)字boolean flag = a.matches("[0-9]+");boolean flag2 = b.matches("\\d+");// 如果兩次輸入的都是數(shù)字,那么將兩次輸入的數(shù)據(jù)轉(zhuǎn)為整數(shù),并求和,以及退出循環(huán)if( flag && flag2){sum = Integer.parseInt(a)+Integer.parseInt(b);break;}else{// 如果兩次輸入有一個(gè)不是數(shù)字,則重新輸入,進(jìn)入循環(huán)System.out.println("請重新輸入,必須只能包含數(shù)字");}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}System.out.println("輸入的兩個(gè)整數(shù)和是:"+sum);} }

運(yùn)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的Java IO流--练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。