输入输出流(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. Linux学习 :中断处理机制 & poll机制

    中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务 的程序中去,服务完毕后再返回去继续运行被暂时中断的程序 ...

  2. 如何下载youtube上面的视频

    youtube做为全球最大的视频共享网站,其视频数量难以计数. 那么你是不是从上面发现了你中意MV,或者一些别的视频?但是你却为无法下载这些视频而苦恼? http://vixy.net/flv_con ...

  3. 6、Android之LayoutInflater.inflate()

    LayoutInflater.inflate()的作用就是将一个xml定义的布局文件实例化为view控件对象: 与findViewById区别: LayoutInflater.inflate是加载一个 ...

  4. nginx+tomcat+dubbo单机部署多台dubbo应用

    前面的博客已经介绍如何使用nginx+tomcat,今天做的是如何在单台服务器上如何部署多台dubbo 应用的集群. 由于在项目中遇到了这个问题,今天就把它记录下来. 1.

  5. U盘被写保护如何解除 (转)

    U盘被写保护如何解除   在使用U盘的时候,一直都很正常,但是突然有一天,U盘被提示被写保护了,不能够进行读写数据,如果这时正着急使用,一定会被气疯了吧,其实解决这个问题,是非常简单的. U盘被写保护 ...

  6. canvas标签(1)--线条、矩形、圆形、文本、阴影、抛小球

    从网上扒拉的代码,敲了敲代码玩. html页面显示内容很简单,只要写个canvas标签,给他一个id写js就可以了 <!DOCTYPE html> <html> <hea ...

  7. 把crosswalk打包到cordova项目中

    (1)从Crosswalk官网下载Cordova Android (ARM) 点击下载 (2)解压压缩包到任意目录 (3)创建工程 cordova工程 cordova create Crosswalk ...

  8. cassandra 公司内分享 ppt

    在公司内分享的cassandra ppt http://files.cnblogs.com/files/yuhan-TB/cassandra.pptx

  9. [Java coding] leetcode notes

    1, 如何不排序而找到最大,次大或者最小值? var int max1, max2, min1; iterate array once: update max1, max2, min1, for ex ...

  10. 浏览器 私有属性&内核

    -moz代表firefox浏览器私有属性 -ms代表IE浏览器私有属性 -webkit代表chrome.safari私有属性 IE使用的是Trident内核,Firefox 使用的是Gecko内核.目 ...