java基础/IO流/、序列化和反序列化、浅复制和深复制

java.io.File 用于表示文件(目录),也就是说程序员可以通过 File 类在程序中操作硬盘上的文件和 目录。

File 类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。

RandomAccessFile 类是 Java 提供的功能丰富的文件内容访问类,它提供了众多方法来访问文件 内容,既可以读取文件内容,也可以向文件输出数据,RandomAccessFile 支持“随机访问”方式,可 以访问文件的任意位置。

将类型 int 转换为 4 byte,或将其它数据类型(如 long -> 8 byte)的过程,即将数据转换 为 n 个 byte 序列叫序列化(数据 -> n byte)。

反序列化,将 n byte 转换为一个数据的过程(n byte -> 数据)。

Java 中的 IO 流是实现输入/输出的基础。InputStream、OutputStream 都是抽象类。InputStream抽象了应用程序读取数据的方式。OutputStream抽象类应用程序写出数据的方式。

文件输出流(FileOutputStream)的构造器,如果没有文件, 会自劢的创建文件! 输出时默认是覆盖这个文件内容,如果需要追加内容,需要使用新的构造器:boolean append = true;new FileOutputStream(file, append);

***文件流FileInputStream、缓冲流BuffedInputStream、过滤流DataInputStream:

DataInputStream 是对基本输入流(InputStream)功能的扩展,它提供基本类型的输入方法, 就 是基本类型的反序列化,DataInputStream 是过滤器,只是功能扩展,不能直接读取文件。

BuffedInputStream可以提高流的传输速度;
***字符流:InputStreamReader 完成 byte 流解析为 char 流, 按照编码解析。OutputStreamWriter 提供 char 流到 byte 流, 按照编码处理。

字符流的过滤器 BufferedReader:BufferedReader : readLine() 一次读取一行和PrintWriter: println() 一次打印一行

//使用URL读取网页内容
 2 //创建一个URL实例
 3 URL url =new URL("http://www.baidu.com");
 4 InputStream is = url.openStream();//通过openStream方法获取资源的字节输入流
 5 InputStreamReader isr =newInputStreamReader(is,"UTF-8");//将字节输入流转换为字符输入流,如果不指定编码,中文可能会出现乱码
 6 BufferedReader br =newBufferedReader(isr);//为字符输入流添加缓冲,提高读取效率
 7 String data = br.readLine();//读取数据
 8 while(data!=null){
 9 System.out.println(data);//输出数据
10 data = br.readerLine();
11 }
12 br.close();
13 isr.colose();
14 is.close();

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值