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)...
摘要由CSDN通过智能技术生成

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();

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值