千锋逆战班,IO①

在千锋学习的第31天
努力努力在努力,坚持坚持再坚持!!!加油
今天我学习了java的IO框架,了解了各种流,以及流对存储文件和程序之间的操作

  1. ( 流的分类)对于FilelnputStream来说,从方向上来分, 它是_输入流,从数据单位上分,它是_字节流,从功能上分,它是节点流。

  2. ( 字节流) FileInputStream有三个重载的read方法,其中:
    I. 无参的read方法返回值为 int 类型,表示获取字节的ASCII值
    II. int read(byte[] bs)方法返回值表示_int_ , 参数表示_将读取的多个字节存入数组bs中
    III. int read(byte[] bs, int offset, int len)方法返回值表示_int_, 参数分别表示读入的数据存储在bs数组,off代表读取到的元素从数组b[off]开始存储(数组b的下标偏移量),读len长度的数据

在这里插入图片描述
答案:AB

在这里插入图片描述

答案:I:会创建该文件,存在就覆盖
II:每运行一边程序,都会在前一编程序输出的字节后面追加上本次输出的字节,会产生异常

在这里插入图片描述

首先创建输入字节节点流对象没有声明异常,把关闭流的代码挡在finally最合适

在这里插入图片描述

package questions;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Testq8 {

	public static void main(String[] args) throws IOException {
		
		OutputStream fot = new FileOutputStream("test.txt",true);
		String str = "Hello Word";
		byte[] b = str.getBytes();
		
		fot.write(b);
		
		InputStream fit = new FileInputStream("test.txt");
//		
//		while(true){
//			int cout = fit.read();
//			if(cout == -1){
//				break;
//			}
//			System.out.print((char)cout);
			
//		}
		byte[] b1 = new byte[4];
		
		try{
			while(true){
				int c = fit.read(b1);
				if(c == -1){
					break;
				}
				for (int i = 0; i < b1.length; i++) {
					System.out.print((char)b1[i]);
				}
			}
			}catch(Exception e ){
				
				
				
			}finally{
				fit.close();
			}
			
		}
	

}

在这里插入图片描述
实现Serializable接口
transient修饰符

在这里插入图片描述
print(Object obj)是打印一个对象obj
writeObject(Object obj) 将对象obj写入ObjectOutputstream中

在这里插入图片描述
B,因为Address没有实现Serializable接口

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值