JavaIO
2015-10-04 20:23
549 查看
程序--------->(输出流:抽象类OutputStream<字节输出流>或抽象类Writer<字符输出流>的子类)
程序<---------(输入流:抽象类InputStream<字节输入流>或抽象类Reader<字符输入流>的子类)
Direct Known Subclasses:AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream,SequenceInputStream, StringBufferInputStream
File类:主要用来获取一些文件信息,不涉及对文件的读写操作
构造方法:
1. File(String filename);
2. File(String directoryPath,String filename);
3. File(File dir,String filename);
获取信息的一些方法:getName canRead canWrite exists length getAbsolutePath getParent isFile isDirectory isHidden lastModified
创建目录:public boolean mkdir() 失败或已存在返回false
若File对象是目录,可调用以下方法列出文件和子目录:
public String[] list()public File[] listFiles()
列出目录下指定类型的文件:
public String[] list(FilenameFilter obj)public File[] listFiles(FilenameFilter obj)
FilenameFilter是一个接口,该接口有一个方法:
public boolean accept(File dir,String name);
实现该接口的对象在list方法执行时会不断回调接口方法accept,该方法中的dir为调用list的当前目录File,参数name被实例化为File目录中一个文件名,当接口方法返回true时,list方法就将名字为name的文件存放到返回的数组中。
public boolean createNewFile();
public boolean mkdir();
删除:public boolean delete();
运行可执行文件:
1. 使用Runtime类声明一个对象
2. 使用静态方法getRuntime()创建这个对象
3. 调用exec(String command)
FileStream系列--
文件字节输入输出流:
1.输入流:
---FileInputStream 继承自 InputStream
构造方法:FileInputStream(String name); FileInputStream(File file);参数文件是输入流的源。应catch IOException
读取字节方法: int read();int read(byte b[]);
int read(byte b[],int off,int len);读出的字节存入byte数组,再用byte数组创建String对象即可
关闭流: inputStream.close();
2.输出流:
---FileOutputStream 继承自 InputStream
构造方法:FileOutputStream(String name);FileOutputStream(File file);若文件不存在则创建该文件。否则刷新文件(使其长度为0) 同样要catch IOException
FileOutputStream(String/File filename,boolean append)选择是否刷新文件
写字节:void write(int n);void write(byte b[]);
void write(byte b[],int off,int len);
关闭流: FileOutputStream.close();
文件字符输入输出流:
---FileReader 、FileWriter 继承自 Reader、Writer
构造方法类似FileInputStream、FileOutputStream的
读写字符方法类似FileInputStream、FileOutputStream的
其他输入输出流子类:
缓冲流:BufferedReader、BufferedWriter 以字符输入/输出流为源/目的地,拥有更强读写能力,可以按行读取。
随机流:RandomAccessFile 既能读又能写,即既能作为流的源,又能作为流的目的地。读写更灵活,可获取或指定读取位置。
构造方法:RandomAccessFile(String/File filename,String mode);参数mode可取r或rw,流指向文件时不会刷新文件
数组流:字节数组输入/输出流
ByteArrayInputStream(byte[] buf)、ByteArrayOutputStream(byte[] buf)分别使用字节数组作为源和目的地
数据流:DataInputStream、DataOutputStream 更方便的数据读写,机器无关。构造需要底层输入/输出流作为构造参数
对象流:ObjectInputStream、ObjectOutputStream 构造需要底层输入/输出流作为构造参数,对象须实现Serializable接口。可使用该流来克隆对象
程序<---------(输入流:抽象类InputStream<字节输入流>或抽象类Reader<字符输入流>的子类)
Direct Known Subclasses:AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream,SequenceInputStream, StringBufferInputStream
File类:主要用来获取一些文件信息,不涉及对文件的读写操作
构造方法:
1. File(String filename);
2. File(String directoryPath,String filename);
3. File(File dir,String filename);
获取信息的一些方法:getName canRead canWrite exists length getAbsolutePath getParent isFile isDirectory isHidden lastModified
创建目录:public boolean mkdir() 失败或已存在返回false
若File对象是目录,可调用以下方法列出文件和子目录:
public String[] list()public File[] listFiles()
列出目录下指定类型的文件:
public String[] list(FilenameFilter obj)public File[] listFiles(FilenameFilter obj)
FilenameFilter是一个接口,该接口有一个方法:
public boolean accept(File dir,String name);
实现该接口的对象在list方法执行时会不断回调接口方法accept,该方法中的dir为调用list的当前目录File,参数name被实例化为File目录中一个文件名,当接口方法返回true时,list方法就将名字为name的文件存放到返回的数组中。
public class FileFilter implements FilenameFilter{ private String extendName; public void setExtendName(String s){ extendName = "."+s; } public boolean accept(File dir, String name) { return name.endsWith(extendName); } }Tips:当使用File类创建一个对象后,并不会创建文件或者目录,还要调用:
public boolean createNewFile();
public boolean mkdir();
删除:public boolean delete();
运行可执行文件:
1. 使用Runtime类声明一个对象
2. 使用静态方法getRuntime()创建这个对象
3. 调用exec(String command)
<span style="white-space:pre"> </span>Runtime mRuntime = Runtime.getRuntime(); File file = new File("F:/Program Files/Notepad++", "notepad++.exe"); try{ mRuntime.exec(file.getAbsolutePath()); }catch(Exception e){ }
FileStream系列--
文件字节输入输出流:
1.输入流:
---FileInputStream 继承自 InputStream
构造方法:FileInputStream(String name); FileInputStream(File file);参数文件是输入流的源。应catch IOException
读取字节方法: int read();int read(byte b[]);
int read(byte b[],int off,int len);读出的字节存入byte数组,再用byte数组创建String对象即可
关闭流: inputStream.close();
2.输出流:
---FileOutputStream 继承自 InputStream
构造方法:FileOutputStream(String name);FileOutputStream(File file);若文件不存在则创建该文件。否则刷新文件(使其长度为0) 同样要catch IOException
FileOutputStream(String/File filename,boolean append)选择是否刷新文件
写字节:void write(int n);void write(byte b[]);
void write(byte b[],int off,int len);
关闭流: FileOutputStream.close();
文件字符输入输出流:
---FileReader 、FileWriter 继承自 Reader、Writer
构造方法类似FileInputStream、FileOutputStream的
读写字符方法类似FileInputStream、FileOutputStream的
其他输入输出流子类:
缓冲流:BufferedReader、BufferedWriter 以字符输入/输出流为源/目的地,拥有更强读写能力,可以按行读取。
随机流:RandomAccessFile 既能读又能写,即既能作为流的源,又能作为流的目的地。读写更灵活,可获取或指定读取位置。
构造方法:RandomAccessFile(String/File filename,String mode);参数mode可取r或rw,流指向文件时不会刷新文件
数组流:字节数组输入/输出流
ByteArrayInputStream(byte[] buf)、ByteArrayOutputStream(byte[] buf)分别使用字节数组作为源和目的地
数据流:DataInputStream、DataOutputStream 更方便的数据读写,机器无关。构造需要底层输入/输出流作为构造参数
对象流:ObjectInputStream、ObjectOutputStream 构造需要底层输入/输出流作为构造参数,对象须实现Serializable接口。可使用该流来克隆对象
相关文章推荐
- JAVA实验一
- 使用Spring的@Scheduled实现定时任务
- Java实验一
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
- 第二次作业利用java语言编写计算器进行四则运算
- Java多态性理解
- [深入理解Java虚拟机]第二章 HotSpot虚拟机对象探秘
- struts2原理分析
- 关于java中流的使用--文件以及socket
- Java中接口的清晰+形象理解
- 关于java中流的使用--文件以及socket
- Java零碎知识点
- Java基础知识点总结(一)
- JavaBean
- java连接mysql
- Java多线程9:ThreadLocal源码剖析
- Eclipse常用快捷键
- myeclipse更改deploy location名称
- Java HashMap 源码解析
- java多组件时如何更新表格