![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IO
我叫阿狸猫
这个作者很懒,什么都没留下…
展开
-
打印流
/*打印流:该流提供了打印方法,可以将各种数据类型的数据都原样打印。write(int b) 将指定的字节写入此流。如果写入一个int类型的数字用一般的打印方法,只是将这个数的最低8位打印出去,没有保证数据原样性。字节打印流:PrintStream: PrintStream(File file) 接收File类型 PrintStream(OutputStr原创 2012-05-12 13:27:17 · 532 阅读 · 0 评论 -
管道流!
//管道流,多线程和IO相结合import java.io.*;class Read implements Runnable{ private PipedInputStream pis; Read(PipedInputStream pis) { this.pis=pis; } public void run() { try { byte by[]=new byt原创 2012-05-12 13:26:29 · 650 阅读 · 0 评论 -
RandomAccessFile(随即读取)操作文件有4种模式:"r"、"rw"、"rws" 或 "rwd"
/*这类不算是IO体系中的子类。而是直接继承Object但是它是IO包中的成员,因为它具备读和写的功能。能完成读写的原理是内部封装了字节输入流和输出流。而且内部还封装了一个数组,通过指针对数组的元素进行操作。可通过getFilePointer获取指针位置。也可通过seek改变指针的位置。通过构造函数可以看出,该类只能操作文件。操作文件有4种模式:"r"、"rw"、"rws" 或原创 2012-05-12 13:18:48 · 8238 阅读 · 2 评论 -
用于操作基本数据类型的流对象
import java.io.*;class DataStreamDemo{ public static void main(String[] args) throws IOException { //method1(); readUTFDemo(); //writeUTFDemo(); } public static void method()throws IOExce原创 2012-05-12 13:16:20 · 735 阅读 · 0 评论 -
用于操作字节数组的流对象。
/*用于操作字节数组的流对象。ByteArrayInputStream:在构造的时候,需要接收数据源,而且数据源是一个字节数组。ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象中已经内部封装了一个可变长度的字节数组。 这就是数据目的地。因为这两个流对象都操作的是数组,并没有使用系统资源,不用关闭资源。close();源设备:原创 2012-05-12 13:15:14 · 846 阅读 · 0 评论 -
编码解码!(UTF-8,iso8859-1,gbk)
/*编码:字符串变成字节数组String---->byte[]: str.getBytes(charsetName);byte[]---->String new String(byte[],charsetName);这个程序实现了,先由GBK进行编码,然后用别的码表进行解码,但是解出来不是?就是乱码,所以需要再用别的码表编码一次再用GBK进行解码!GBK码表一个字符对应2个原创 2012-05-12 13:13:02 · 1802 阅读 · 0 评论 -
文件的切割流和合并流
//文件的切割流和合并流import java.io.*;import java.util.*;class SplitDemo { public static void main(String[] args) throws IOException { method2(); } public static void method2()throws IOException//此方法原创 2012-05-09 21:53:23 · 565 阅读 · 0 评论 -
为什么IO读取流的read方法返回的是int而不是byte的原因!
//为什么read()方法返回的是int类型而不是byte1个字节8位,(byte)4个字节32位,(int)byte -1 --->int -1(将byte提升为int)byte 是1一个字节,即8位,如果取到连续11111111 (8个1)为了避免读到连续8个1(就是-1)和定义的结束标记-1相同(read()返回-1就是读到末尾)。所以在保留11111111的基础上,在转成in原创 2012-05-06 14:34:07 · 2581 阅读 · 0 评论 -
LineNumberReader(在打印数据的前面加行号)
import java.io.*;class LineNumberReaderDemo{ public static void main(String[] args)throws IOException { FileReader fr=new FileReader("FileReaderTest.java"); LineNumberReader lr=new LineNumberR原创 2012-05-05 22:02:34 · 786 阅读 · 0 评论 -
装饰类和继承的区别
MyReader//专门用于读取数据的类(读取文件,读取电影,读取数据,都有读取所以向上抽取出来) |--MyTestReader |--MyBuffereTextReader//因为想要增强MyTestReader读取的效率,定义了MyTestReader特定缓冲区 |--MyMediaReader |--MyBuffereMediaReader |--MyDateReader原创 2012-05-05 22:00:30 · 871 阅读 · 0 评论 -
File类中常用方法!
/*File类常见方法:1.创建: boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。 和输出流不同的是,输出流对象一建立就创建文件,而且文件若是存在则覆盖。 boolean mkdir():创建一个目录,或者一个目录的一个子目录。 boolean mkdirs():创建多级文件,包括一级目录。2.删除 b原创 2012-05-06 21:57:01 · 868 阅读 · 0 评论 -
自定义LineNumberReader
import java.io.*;class MyLineNumberReader{ private int line; private FileReader r; MyLineNumberReader(FileReader r) { this.r=r; } public void mySetLine(int line) { this.line=line; } pub原创 2012-05-05 22:17:54 · 564 阅读 · 0 评论 -
自定义一个一次读一行的缓冲区
import java.io.*;class MyBufferedReader{ private FileReader r; MyBufferedReader(FileReader r) { this.r=r; } public String myReadLine()throws IOException { StringBuilder sb=new StringBuilde原创 2012-05-05 20:21:13 · 692 阅读 · 0 评论 -
对象的序列化!
import java.io.*;class ObjectOutputStreamDemo{ public static void main(String[] args) throws Exception { //method(); method1(); } public static void method()throws Exception { ObjectOutp原创 2012-05-12 13:29:37 · 460 阅读 · 0 评论