IO基础
来源:互联网 发布:java 方法上的泛型 编辑:程序博客网 时间:2024/06/13 21:14
8.5学习心得
1. I/O操作的一般步骤
(1)构造一个与介质相关的I/O对象,以提供一种低层次的方法将数据输入或输出到相应的介质;
(2)将与介质相关的对象强制类型转换为它的父类(即抽象I/O类),并利用该对象构造一个流对象。这样便建立起了流类对象与介质相关对象的关联;
(3)这时就可利用流对象的I/O方法进行相应介质上的数据读写。
2. 从流中传输的数据单位分为两类:字节流与字符流
- 字节流
从InputStream和OutputStream派生出来的一系列类,以字节(byte)为基本处理单位。
- 实例:利用字节流将本程序拷贝至另一个文件acopy_of_java_file中
public static void main(String args[]) throws IOException{ FileInputStream f1; FileOutputStream f2; f1=new FileInputStream("FileCopy.java"); f2=new FileOutputStream("acopy_of_java_file"); int temp; while((temp=f1.read())!=-1) f2.write(temp); f1.close(); f2.close(); }
- 字符流
从Reader和Writer派生出的一系列类,以16位的Unicode码表示的字符为基本处理单位。
- 实例:利用字符流将本程序拷贝至另一个文件acopy_of_java_file中
public static void main(String args[]) throws IOException{ FileReader f1; FileWriter f2; f1=new FileReader("FileCopy.java"); f2=new FileWriter("acopy_of_java_file"); int temp; while((temp=f1.read())!=-1) f2.write(temp); f1.close(); f2.close(); }}
3. 文件描述
- 文件的生成
(1)public File(String path);(2)public File(String path,String name);(3)public File(File dir,String name);
- 文件的方法
String getName( );/*得到一个文件的名称(不包括路径)*/String getPath( );//得到一个文件的路径名String getAbsolutePath( );/*得到一个文件的绝对路径名*/String getParent( );/*得到一个文件的上一级目录名*/String renameTo(File newName);/*将当前文件名更名为给定文件的完整路径*/
- 文件属性测试
boolean exists( );/*测试当前File对象所指示的文件是否存在*/boolean canWrite( );//测试当前文件是否可写boolean canRead( );//测试当前文件是否可读boolean isFile( );/*测试当前文件是否是文件(不是目录)*/boolean isDirectory( );/*测试当前文件是否是目录*/
- 实例:通过类BufferedReader对文件实现按行读取
public static void main (String [ ] args) throws IOException { FileReader fr = new FileReader("ReadFile.java"); BufferedReader br = new BufferedReader(fr); String line = br.readLine( );//以\r\n进行分段读取 while (line != null) { System.out.println(line); line = br.readLine( ); } br.close( );}
4. Java序列化与反序列化
Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。
什么情况下需要序列化?
(1)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
(2)当你想用套接字在网络上传送对象的时候;
(3)当你想通过RMI传输对象的时候;
- 序列化作用
实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里);利用序列化实现远程通信,即在网络上传送对象的字节序列。
- JDK类库中序列化的步骤
(1)创建一个对象输出流
ObjectOutputStream out = new ObjectOutputStream(new fileOutputStream(“D:\\objectfile.obj”));
(2)通过对象输出流的writeObject()方法写对象
out.writeObject(“Hello”);out.writeObject(new Date());
- JDK类库中反序列化的步骤
(1)创建一个对象输入流,它可以包装一个其它类型输入流,如文件输入流
ObjectInputStream in = new ObjectInputStream(new fileInputStream(“D:\\objectfile.obj”));
(2)通过对象输出流的readObject()方法读取对象
String obj1 = (String)in.readObject();Date obj2 = (Date)in.readObject();
拓展:
- python的基础用法
阅读全文
0 0
- IO基础
- IO基础
- IO基础
- JAVA基础IO介绍
- java io 基础
- JAVA 基础IO流
- java IO基础学习
- java IO基础概念
- java基础之io
- java基础之IO
- java基础之IO
- JavaSE基础:IO
- java中的IO基础
- Java基础20:IO
- Java基础21:IO
- java基础复习 IO
- Java基础<十五>---> IO
- 【xy】JAVA基础--IO
- activiti学习笔记(二) 获取流程实例
- Java基础复习——(一)Java基础概述
- JSP九大内置对象及四个作用域
- 1
- shell脚本编程习题浅析
- IO基础
- 【hautoj 1280】诡异的迷宫 【bfs 】
- http的状态码
- 最短路||HDU2544
- LeetCode:Longest Palindromic Substring
- 趣味编程-JavaScript-数组
- 蹭热度,程序员入传销有感
- 数组的声明、初始化
- java 宠物店管理系统