`

Java IO 小结

阅读更多
什么是数据流
----------数据流是指所有的数据通信通道
在java中有关流的操作使用java.io.*
出于安全的考虑,小应用不能实现文件I/O流
标准输入输出
----------System类管理标准输入输出流和错误流
System.out: 把输出送到缺省的显示(通常是显示器)
System.in: 从标准输入获取输入(通常是键盘)
System.err: 把错误信息送到缺省的显示
System.in: 属于BufferedInputStream类型
System.out: 属于PrintStream类型 (String)
System.err: 属于PrintStream类型
每当main方法被执行时,就自动生成上述三个对象
输入流输出流基类
--------------InputStream和OutputStream
抽象类,不能直接使用
InputStream类的方法:
-----------------------read():从流中读入数据
skip():跳过流中若干字节数
available():返回流中可用字节数
mark():在流中标记一个位置
reset():返回标记过得位置
markSupport():是否支持标记和复位操作
close():关闭流
OutputStream类的方法:
------------------------write(int b):将一个整数输出到流中
write(byte b[]):将数组中的数据输出到流中
write(byte b[], int off,int len):将数组b中从off指定的位置开始len长度的数据输出
到流中
flush():将缓冲区中的数据强制送出
close():关闭流.
PrintStream类
-----------println()不属于OutputStream类,它是PrintStream类的子类,能提供复杂的输出
PrintStream类的方法有: write, flush, checkError,print, println,close.
其中println可以输出多种形式的数据.例如:
println(String s), println(char c)等
FILE IO
-----1.文件对象的建立
File fp=new File(“tempfile.txt”);
对文件操作要定义文件流
FileInputStream类用来打开一个输入文件
FileOutputStream类用来打开一个输出文件
2.文件流的建立
FileInputStream in=new FileInputStream(fp);
FileOutputStream out=new FileOutputStream(fp);
3.增加缓冲区流,减少访问硬盘的次数,提高效率
BufferedInputStream和BufferedOutputStream, 将它们与文件流相接
FileInputStream in=new FileInputStream(“file1.txt”);
BufferedInputStream bin= new BufferedInputStream(in,256);
只有缓冲区满时,才会将数据送到输出流.
Java在输出数据流中,当对方尚未将数据取走时,程序就会被阻塞.
有时要人为地将尚未填满的缓冲区中的数据送出,使用flush()方法
数据输入输出流


------------DataInputStream、DataOutputStream
除了字节和字节数组,还可以处理int,float,boolean等类型.
还可以用readLine方法读取一行信息
可使用的方法:
write,writeBoolean,read,readByte等
数据流的建立
FileInputStream fos= new FileInputStream(”file2.txt"));
DataInputStream dis= new DataInputStream(fos)
数据输出流可以是一个已经建立好的输入数据流对象,例如网络的连结,文件等.
类RandomAccessFile
-----------------RandomAccessFile是处理本地文件的类
zip文件需要用随机方法处理
文件目录给出个文件的入口,可以随机读取.
创建一个随机文件
new RandomAccessFile(file1.txt, r);
new RandomAccessFile(file2.txt, rw);
随机文件可以同时完成读和写操作.
支持随机文件操作的方法:
readXXX()或writeXXX()
skipBytes();将指针乡下移动若干字节
seek():将指针调到所需位置
getFilePointer():返回指针当前位置
length():返回文件长度
利用seek(long pos)方法查找随机文件中的信息
其他操作
------使用文件类获取文件的路径信息
设f是一个文件对象
File f=new File(“data”,temp.dat”);
f.getName():返回文件名 temp.dat
f.getParent():返回文件所在目录名 data
f.getPath():返回文件路径 datatemp.dat
f.getAbsolutePath():返回绝对路径
unicode
-----在java中用unicode 表示字符和字符串
DatainputStream的readLine方法, 以字节形式读入, 以unicode形式输出
DataInputStream不适合输入是unicode的形式
处理字符用InputStreamReader 类和BufferedReader类(jdk1.1)
管道流
--------创建管道流
管道流一定是输入输出并用
例:将数据从输出管道进,从输入管道出
PipedInputStream pis=new PipedInputStream();
PipedOutputStream pos=new PipedOutputStream(pis);
对象流
----在java.io包中什么是对象的持续性?
能够纪录自己的状态一边将来再生的能力,叫对象的持续性
什么是串行化?
对象通过写出描述自己状态的的数值来记录自己的过程叫串行化.
什么是对象流?
能够输入输出对象的流.
两者什么关系?
将串行化的对象通过对象输入输出流写入文件或传送到其它地方.
相应的类:ObjectInput
对象的输出: ObjectOutputStream
相应的方法:writeObject()
对象的输入:ObjectInputStream
相应的方法:readObject()
分享到:
评论

相关推荐

    JAVA IO流小结

    JAVA IO流小结JAVA IO流小结JAVA IO流小结

    java io 类 小结 代码

    简洁分类 代码直接使用 InputStream OutputStream Reader Writer FileInputStream FileOutputStream FileReader FileWriter InputStreamReader OutputStreamWriter BufferedReader BufferedWriter ...

    Java学习IO流小结--字节流

    主要描述了常用字节流的用法,附上一些代码!

    Java学习IO流小结--字符流

    主要描述了常用字节流的用法,附上一些代码!

    (超赞)JAVA精华之--深入JAVA API

    1.3.11 小结 1.4 java中的一些常用词汇 1.5 J2SE学习中的30个基本概念 1.6 Java线程 1.7 Java 5.0多线程编程 1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象类与接口的区别 1.11 Java变量类型间的相互转换 2 ...

    Java基础知识点总结.docx

    Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java...

    JAVA SE学习精华集锦

    1.3.11 小结 56 1.4 java中的一些常用词汇 56 1.5 J2SE学习中的30个基本概念 58 1.6 Java线程 60 1.7 Java 5.0多线程编程 65 1.8 Java Socket编程 80 1.9 Java的内存泄漏 85 1.10 抽象类与接口的区别 86 1.11 Java...

    Java中String类和IO流——学习小结

    String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。String类对象创建后是一个常量,有final修饰,不能被修改。字符串重新赋值不是修改,而是生成了一个新的字符串,原先的字符串...

    疯狂JAVA讲义

    1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML...

    一些语言的按行读取文件的代码实现小结

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Java...

    Java 2平台安全技术-结构,API设计和实现

    3.12 小结 67 第4章 安全结构的使用 70 4.1 安装JDK1.2 70 4.2 策略配置 71 4.2.1 配置系统型和用户专用型策略 71 4.2.2 配置应用程序专用型策略 72 4.2.3 配置一个可选Policy类的实现 72 4.2.4 缺省的策略文件格式 ...

    JAVA 2平台安全技术-结构,API设计和实现

    3.12 小结 67 第4章 安全结构的使用 70 4.1 安装JDK1.2 70 4.2 策略配置 71 4.2.1 配置系统型和用户专用型策略 71 4.2.2 配置应用程序专用型策略 72 4.2.3 配置一个可选Policy类的实现 72 4.2.4 缺省的策略文件格式 ...

    Java高级程序设计实战教程第五章-Java序列化机制.pptx

    Java高级程序设计 第5章 Java序列化机制 5.1 应用场景 5.2 相关知识5.3 实施过程 5.4 拓展知识5.5 拓展训练 5.6 课后小结5.7 课后习题 5.8 上机实训 Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前...

    java基础案例与开发详解案例源码全

    3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组...

    Java中的缓冲流——学习小结

    这里需要说明一点小知识,在对硬盘进行读写操作时,一个完整的文件的读写速率要远远高于同样大小的散文件的读写速率。这是因为散文件需要不断地访问、关闭硬盘,极大地浪费了时间,缓冲流也是同样原理。 缓冲流基于...

    Java网络编程--Unix域协议:概述

    Unix域协议:概述 16.1 概述 175 16.2 用途 176 16.3 性能 177 16.4 编码举例 177 16.5 小结 179

    Java网络编程--T/TCP实现:TCP用户请求

    T/TCP实现:TCP用户请求 12.1 概述 120 12.2 PRU_CONNECT请求 120 12.3 tcp_connect函数 120 12.4 PRU_SEND和PRU_SEND_EOF请求 124 12.5 tcp_usrclosed函数 125 12.6 tcp_sysctl函数 126 ...12.8 小结 127

    Java网络编程--NNTP:网络新闻传送协议

    NNTP:网络新闻传送协议 15.1 概述 166 15.2 NNTP 167 15.3 一个简单的新闻客户 170 15.4 一个复杂的新闻客户 171 15.5 NNTP的统计资料 172 15.6 小结 173

    JavaNetIO

    Java NetIO 一步步从BIO - > BIO+多线程- >单线程+NIO(非阻塞IO) - > NIO(IO多路复用+单线程) - > NIO(IO多路复用+多线程) Java中的NIO其实是NewIO(另一种解释是NO-blocking IO,确实,在Java...小结:ServerSocketCh

    Java网络开发--TCP协议

    T/TCP协议 2.1 概述 23 2.2 T/TCP中的新TCP选项 23 2.3 T/TCP实现所需变量 25 2.4 状态变迁图 27 2.5 T/TCP的扩展状态 28 2.6 小结 30

Global site tag (gtag.js) - Google Analytics