java输入输出流实验报告_Java第09次实验(IO流) - 实验报告

0. 字节流与二进制文件

我的代码

public class Main {

public static void main(String[] args)

{

String fileName="d:\\testStream\\0\\student.data";

try(DataOutputStream dos=new DataOutputStream(new FileOutputStream(fileName)))

{

Student stu1=new Student(1,"zhang",13,80);

dos.writeInt(stu1.getId());

dos.writeUTF(stu1.getName());

dos.writeInt(stu1.getAge());

dos.writeDouble(stu1.getGrade());

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try(DataInputStream dis=new DataInputStream(new FileInputStream(fileName)))

{

int id=dis.readInt();

String name=dis.readUTF();

int age=dis.readInt();

double grade=dis.readDouble();

Student stu=new Student(id,name,age,grade);

System.out.println(stu);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

我的总结

一、 使用DataOutputStream与FileOutputStream将Student对象写入二进制文件student.data

二进制文件与文本文件的区别

二进制文件可以存储int/double/char..等基本数据类型,文本文件只能存储char型变量。因此文本文件在读取或存储过程中常需要用到类型转换(类似parseInt)

2.try...catch...finally注意事项

catch多个异常时要注意异常写的先后顺序,总体来说越大的(父类)异常要放越后面。可以直接使用eclipse的提示功能直接自己生成异常,方便又不会出错。

3.使用try..with...resouces关闭资源

是jdk8新的语法,可以直接在try(........)的括号中定义最后要关闭的资源,在运行结束后会自动关闭,不需要传统地在finally中关闭资源。用法详见上面代码块。

1. 字符流与文本文件

我的代码

任务1

String fileName="d:\\testStream\\1\\Students.txt";

List studentList = new ArrayList<>();

try(

FileInputStream fis=new FileInputStream(fileName);

InputStreamReader isr=new InputStreamReader(fis, "UTF-8");

BufferedReader br=new BufferedReader(isr))

{

String line=null;

while((line=br.readLine())!=null)

{

String[] msg=line.split("\\s+");

int id=Integer.parseInt(msg[0]);

String name=msg[1];

int age=Integer.parseInt(msg[2]);

double grade=Double.parseDouble(msg[3]);

Student stu=new Student(id,name,age,grade);

studentList.add(stu);

}

}

catch (FileNotFoundException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

你可能感兴趣的:(java输入输出流实验报告)