JavaIO

程序--------->(输出流:抽象类OutputStream<字节输出流>或抽象类Writer<字符输出流>的子类)

程序<---------(输入流:抽象类InputStream<字节输入流>或抽象类Reader<字符输入流>的子类)

Direct Known Subclasses: AudioInputStreamByteArrayInputStreamFileInputStreamFilterInputStreamInputStreamObjectInputStreamPipedInputStream, SequenceInputStreamStringBufferInputStream

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接口。可使用该流来克隆对象





版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/imzcq/p/4886096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值