一:File类 File类是IO包中唯一代表磁盘文件本身信息的类,而不是文件的内容 File类中定义了一些与平台无关的方法来操作文件,如创建,删除,重命名 文件 Java中的目录被当作一种特殊的文件,使用list方法能返回目录的子目录和 文件名 在Unix中的路径分隔符为/,DOS中的路径分隔符为/,java能正确处理Unix和 DOS中的路径分隔符
二:RandomAccessFile类 RandomAccessFile类提供了众多的文件访问方法 RandomAccessFile类支持"随机访问"方式 RandomAccessFile类在随机(相对顺序而言),读写等长记录格式的文件时有 很大优势 RandomAccessFile类仅限于操作文件 构造方法 new RandomAccessFile(f,"rw") new RandomAccessFile(f,"r")
三:流是字节序列的抽象概念。文件是数据的静态存储形式,而流是指数据传输时的形态。流类分为2个大类:节点流类和过滤流类InputStream类 程序可以从中连续读取字节的对象叫输入流,在Java中,用InputStream类来描述所有输入流的抽象概念。 InputStream类的方法 int read() int read(byte[] b) 从流中读取若干个字节 int read(byte[] b,int off,int len) long skip(long n)跳过流中n个字节,并返回实际跳转的字节数 int available()返回当前输入流中可读的字节数,最好在单线程中单独调用 void mark(int readlimit) void reset() boolean markSupported() void close()关闭流对象OutputStream 程序可以想其中连续写入字节的对象叫输出流,在java中,用OutputStream类来描述所有输出流的抽象概念 void write void flush()用于将内存缓冲区中的内容彻底清空,然后输出到IO设备中 void close()关闭输出流对象
四:FileInputStream和FileOutputStream类分别用来创建磁盘文件的输入流和输出流 对象,通过他们的构造函数来指定文件路径和文件名创建FileInputStream实例对象时,指定的文件应当是存在和可读的。创建 FileOutputStream实例对象时,如果指定的文件已经存在,这个文件中的原 来内容将被覆盖清除对同一个磁盘文件创建FileInputStream对象有2种方式: FileInputStream inOne=new FileInputStream("hello.txt"); File f = new File("hello.txt"); FileInputStream inTwo= new FileInputStream(f);创建FileOutputStream对象时,还可以指定不存在的文件名,不能指定被其他程 序打开的文件名Reader类与Writer类
五:PipedInputStream类与PipedOutputStream类用于在应用程序中的创建管道通信PipedWriter和PipedRead类使用管道流类,可以实现各个程序模块之间的松耦合通信。ByteArrayInputStream与ByteArrayOutputStream类 用于以IO流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文 件或者内存映像文件的功能 ByteArrayInputStream的2个构造函数: ByteArrayInputStream(byte[] buf) ByteArrayInputStream(byte[] buf,int offset,int length) 重视IO程序代码的复用 System.in链接到键盘,是InputStream类的实例对象。System.out链接到显 示器,是PrintStream类的实例对象 不管各种底层物理设备用什么方式实现数据的终止点InputStream的read方法 总是返回 -1来表示输入流的结束 在Windows下,按下Ctrl+Z组合键可以产生键盘输入流结束的标记,在linux 下,则是按下Ctrl+D来产生键盘输入流的结束标记
六:过滤流与包装类 包装类的概念与作用
字节流与字符流的转换
七:在java程序中可以用Process类的实例对象表示子进程,子进程的标准输入和输出不再链接到键盘和显示器,而是已管道流的形式连接到父进程的一个输出流和输入流对象上调用Process类的getOutputStream和getInputStream方法可以获得连接到子进程的输出流和输入流对象。
