千锋学习的31天:Io

限于喜欢 提交于 2020-03-17 02:38:01

千锋马海超
千锋学习的31天今天学习异常


三、流的分类,对于fileinputStream来说。从方向上来分,他时_(输入)流,从数据单位上分,它是(字节)流,从功能上分它是_(节点)_流


四、(字节流)fileinprtstream有三个重载read方法,其中:
1 无参的read方法返回值为_(int)类型,表示(从这个输入流读取一个字节的数据);
2 int read(byte[] bs)方法返回值表示_(byte数据数组),参数表示__(读取文件存在一个临时数组中)
3 int read(byte[] bs,int offset,int len)方法返回值表示
(byte数据数组)参数分别表示_(存入数组的下标),
(下标长度)


五(字节流)下面关于fileinputStream类型说法正确的是:(AC)
A 创建FileinputStream 对象时,为了读取硬盘上的文件
B 创建fileinputStream,对象时,如果硬盘上对应的文件不存在,则抛出一个异常
C 利用fileinputStream 对象可以创建文件
D FileInputStream 对象读取文件是,只能读取文本文件


六(字节流)填空
1创建fileoutputStream对象时,如果对应的文件在硬盘上不存在,怎会_(创建一个文件);如果对应的文件在硬盘上已存在,则(追加,或覆盖)_
2如果使用FileOutputStream(String path,boolean append)构造方法创建FileoutputStream对象,并给定第二个参数为true 则效果为_(输出文件追加数据),创建fileoutputStream是()_会|不会产生异常


七代码改错

class TestFileinputStream{
	public static void main(String[] args){  throws IOException  
	FileInputStream fin=new FileInputStream(“Test.txt”); //加异常声明
try{
	System.out.println(fin.read());
	fin.close();
}catch(Exception e){
}
}
}

八(字节流)利用FileInputStream和FileOutputStream,完成下面的要求
1 用fileoutputStream 在当前目录下创建一个文件“text”,并想文件输出Hello World,如果文件已存在,则在原文件内容后面追加
2 用fileinputStream读入text文件,并在控制台上打印出Test.txt 中的内容
3要求用try-catch-finally处理异常,并且关闭流放在finally快中

public class TestFileinputStream{
	public static void main(String[] args) throws IOException {
		FileOutputStream fos=new FileOutputStream("Test.txt");
		FileInputStream fin=new FileInputStream("Test.txt");
		try {		
		byte[] b=new byte[]{'H','e','l','l','o',' ','W','o','r','l','d'};
		fos.write(b);
			for(int i=0;i<b.length;i++) {
			int n=fin.read();
			System.out.print((char)n);
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			fos.close();
			fin.close();
		}
	}
}

十三(对象序列化)
为了让某个对象能够被序列化要求实现_(Serializable)接口
为了让该对象某个属性不参与序列化,应当使用
transient_修饰符


十五(对象序列化)
在printWrite中有一个方法print(Object obj)
在ObjectOutputStream 中,有一个方法WriteObject(Object obj)
请简述这两个方法的区别
1一个 PrintStream添加功能到另一个输出流,即打印各种数据值表示的功能。
2一个对象写入原始数据类型和java对象图的一个输出流。对象可以读取(重组)用ObjectInputStream。通过使用流的文件,可以实现对对象的持久存储。如果流是一个网络套接字流,对象可以被重新在另一个主机上或在另一个进程中。


十六(对象序列化)有以下代码
import java.io.*;
class Address{
private String addressName;
private Strng zipCode;
//构造方法
//get/set方法…
}
class Worker implements Serializable{
private String name;
private int age;
private Address address;
//构造方法
//get/set/方法
}
public class TestSerializable{
public static void main(String[] args)throws Exception{
Address addr=new Address(“北京”,”100000”);
Worker w=new Worker(“tom”,18,addr);
OutputStream os= new FileOutputStream(“fout.dat”);
ObjectOutputStream oout=new ObjectOutputStream(os);
oout.writeObject(w);
oout.close();
}
}
请选择正确答案(B)
A 该程序编译出错
B 编译正常,运行时异常
C 编译正常,运行时也正常

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!