输入输出流(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)的更多相关文章

  1. Java输入输出流(IO)-----文件类File详解

       1.java.io.File类简介 凡是与输入.输出相关的类.接口等都定义在java.io包下 File是一个类,可以有构造器创建其对象.此对象对应着一个文件(.txt .avi .doc .p ...

  2. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  3. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  4. 【转】输入/输出流 - 全面掌握IO

    File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...

  5. JAVA Io 缓冲输入输出流

    java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...

  6. Java基础知识强化之IO流笔记57:数据输入输出流(操作基本数据类型)

    1. 数据输入输出流(操作基本数据类型) (1)数据输入流:DataInputStream DataInputStream(InputStream in) (2)数据输出流:DataOutputStr ...

  7. IO流输入 输出流 字符字节流

    一.流 1.流的概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. ...

  8. Java IO详解(一)------字节输入输出流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  9. java学习笔记IO之字节输入输出流

    IO字节输入输出流 OutputStream:字节输出流 该抽象类是所有字节输出流的超类: 定义了一些共性的成员方法: 1.写入一个字节 void write(int b);//b表示字节 2.写入字 ...

随机推荐

  1. git入门学习

    初步学习笔记. 1.创建仓库:git init 仓库:个人理解为文件存放及版本追踪的容器,对应着一个目录,目录中包含用户的文件及git用来追踪文件版本的一系列文件. 新建并进入HelloWorld目录 ...

  2. 查找“asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd” 该字符串中有多少个af

    package lovo.bean; import java.util.Scanner; public class Java { @param args public static void main ...

  3. BOOL和bool的区别

    一. 1.类型不同 BOOL为int型 bool为布尔型 2.长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3.取值不同 bool取值false和true,是0和1 ...

  4. Unity3D之C# yield waitforseconds

    Wait for seconds requires a couple things in order to work properly and chances are if it's not work ...

  5. JavaScript中style, currentStyle和 getComputedStyle的异同

    今天在做项目的时候,习惯性的用到了element.style.width,然而浏览器却报错,错误提示是style is undefined,这是我才意识到,内联样式表和外联样式表在js应用中也有很大的 ...

  6. VMware下利用ubuntu13.04建立嵌入式开发环境之五

    tftp和nfs服务器配置 一.tftp服务器配置 1.安装软件包 1.1安装服务 apt-get install tftpd-hpa 1.2安装客户端 apt-get install tftp-hp ...

  7. 颜色代码表#FFFFFF #FF0000 #00FF00 #FF00FF (2015-07-21 10:39)转载

    ▼标签: 颜色代码表 白色 ffffff 红色 ff0000 黑色 000000 it     分类: hht1 白色 #FFFFFF 2 红色 #FF0000 3 绿色 #00FF00 4 蓝色 # ...

  8. B2C电子商务基础系统架构解析(转载)

    系统的开发与演化,前台严格follow消费者的购买流程,后台则盯牢订单流转,牢牢抓住这两条主线,才能高屋建瓴的看清B2C的逻辑链和数据流,更深刻的规划功能模块,从而更有效支撑实际业务的流转. 前台 前 ...

  9. JavaWeb--Servlet部分笔记

    1.集群:数万个服务器协同工作 2.web应用核心组件:jsp和servlet(属于门户),都在web容器中执行 3.web客户端发http请求(大的字符串)给web服务器:web服务器根据头信息来定 ...

  10. Cardinal样条曲线的Javascript实现(理论篇)

    首先,要对样条曲线进行插值的原因是:希望通过给定的关键帧点生成一条希望的直线或者曲线. 1.直线插值 生成一条直线,给定直线首尾的关键点P0,P1,就能确定这条直线的特性,比如y=kx+b中的斜率k和 ...