输入输出流(IO)
输入输出流(IO)
文件(File)
java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。
File类只用于表示文件(目录)的信息(名称、大小等),并且能对文件的内容进行访问。
getCanonicalPath()---获取当前路径
delete()删除路径名表示的文件或目录
exists()测试路径名表示的文件或目录是否存在
listFiles()返回一个抽象路径名数组,这些路径名表示此路径名表示的目录中的文件
mkdir()新建一个目录
createNewFile()新建一个文件
创件一个新的文件
File d=new File(f,"demo");
if(!d.exists()){
d.mkdir();
}
创件新的文件对象
File text=new File(d,"text");
if(!text.exists()){
text.createNewFile();
}
Java中的IO流是实现输入/输出的基础。
IO流按方向分为输入流和输出流
IO流按读取大小分为字节流和字符流
IO流按功能分为节点流和处理流(包装流)
字节流:(InputStream OutputStream)
所有面向字节的流类都继承于InputStream类(读取\输入流)或OutputStream类(写出\ 输出流),这两个类是抽象类,我们可以利用它的子类来完成不同的功能。
文件输入流 FileInputStream 继承了InputStream,FileInputStream 具体实现了在文件上读取数据。
文件输出流 FileOutputStream继承了OutputStream,FileOutputStream 具体实现了在文件上写入数据。
字符流:
字符流(Reader Writer)
字符的处理,一次处理一个字符
字符的底层仍然是基本的字节流
字符流的基本实现
InputStreamReader 完成 byte 流解析为 char 流, 按照编码解析
OutputStreamWriter 提供 char 流到 byte 流, 按照编码处理
主要使用它们两个FileReader FileWriter
Reader类中两个常用类:
FileReader:以字符流的形式读取文件,与FileInputStream用法基本一致。
BufferedReader:将流读入缓冲区,然后从缓冲区读取,并且提供了readLine()方法,可以从文本文件中整行的读取数据。
Writer类中两个常用类:
FileWriter:以字符流的形式写入文件,与FileOutputStream用法基本一致。
BufferedWriter:将缓冲区输出到流。
字符流和字节流的区别:
InputStream和OutputStream主要用来处理可以被直接读作bytes的数字。
Reader和Writer用来处理文本。
对象序列化(必须实现Serializable(序列化)接口)
对象序列化就是为了保存在内存中各个对象的状态
对象序列化,就是将 Object 转换为 byte 序列,反之叫对象的反序列化。
序列化流(ObjectOutputStream), 是过滤流
ObjectOutputStream writeObject(Object) 序列化对象
ObjectInputStream readObject() 对象的反序列化
Users u=new Users();
u.setUserId(1);
u.setUserName("zhangsan");
u.setUserPwd("admin");
File file=new File("c://wode.txt");
FileOutputStream fo=new FileOutputStream(file);
ObjectOutputStream ops=new ObjectOutputStream(fo);
ops.writeObject(u);
读取:
File file=new File("c://wode.txt");
FileInputStream fis=new FileInputStream(file);
ObjectInputStream ois=new ObjectInputStream(fis);
Users u=(Users) ois.readObject();
System.out.println(u.getUserId()+" "+u.getUserName());
输入输出流(IO)的更多相关文章
- Java输入输出流(IO)-----文件类File详解
1.java.io.File类简介 凡是与输入.输出相关的类.接口等都定义在java.io包下 File是一个类,可以有构造器创建其对象.此对象对应着一个文件(.txt .avi .doc .p ...
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...
- 【转】输入/输出流 - 全面掌握IO
File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...
- JAVA Io 缓冲输入输出流
java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...
- Java基础知识强化之IO流笔记57:数据输入输出流(操作基本数据类型)
1. 数据输入输出流(操作基本数据类型) (1)数据输入流:DataInputStream DataInputStream(InputStream in) (2)数据输出流:DataOutputStr ...
- IO流输入 输出流 字符字节流
一.流 1.流的概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. ...
- Java IO详解(一)------字节输入输出流
File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...
- java学习笔记IO之字节输入输出流
IO字节输入输出流 OutputStream:字节输出流 该抽象类是所有字节输出流的超类: 定义了一些共性的成员方法: 1.写入一个字节 void write(int b);//b表示字节 2.写入字 ...
随机推荐
- jquery 层根据矩形路径移动和闪耀(原创)
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>De ...
- PDO创建mysql数据库并指定utf8编码
<?php //PDO创建mysql数据库并指定utf8编码 header('Content-type:text/html; charset=utf-8'); $servername = &qu ...
- java mysql 日期类型
mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59: ...
- EF升级6.0数据库链接不上问题
昨天搞了个mvc4 先从net4.0 升级4.5后 数据库连接不上了, 然后升级ef未最新的6.1 居然还报错 不到方法:“System.Data.Objects.ObjectContext S ...
- c/c++程序员必须要掌握开源项目
作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应 ...
- 更新centos curl
centos curl 默认使用nss,而不是openssl 升级curl让curl支持openssl rpm -Uvh http://www.city-fan.org/ftp/contrib/yum ...
- svn co
svn co 的用法经常有两种: 第一种: 直接 svn co http://svnserver/mypro/trunk 此时, 会在你的当前目录 ...
- mstsc连接服务器时如何避免每次在登陆窗口输入密码(rdp passwd decrypted )
http://blog.chinaunix.net/uid-1835840-id-2831518.html 我们经常需要连接很多服务器,或者服务器的ip经常变动.把连接的密码保存在rdp配置文件里,用 ...
- Maven联网问题
关于Maven联网问题 关于如何找到Maven默认的本地仓库问题 修改Maven默认本地仓库 找到 <localRepository>/path/to/local/repo</loc ...
- Promise与Defer认识
1.deffer对象:jquery的回掉函数解决方案:含义是延迟到未来某个点再执行: 2.$.ajax链式写法: $.ajax("test.php") .done(func ...