输入输出流之File类
java.io包提供了许多的流类
字节输入流:InPutStream 字符输入流:Reader 字符输出流:OutPutStream 字节输出流:Writer
文件类File
三种创建File对象的方法
File(String filename);//创建的文件处于当前文件夹
File(String directoryPath,String filename);//directoryPath为文件路径
File(File dir,String filename);//dir是目录文件,生成的文件在该目录下
File类的一些常用方法
1.getName ——获取文件名
2.canRead ——判断文件是否可读
3.canWrite ——判断文件是否可写
4.getName ——获取文件名
5.exists ——判断文件是否存在
6.length ——获取文件长度
7.getAbsolutePath ——获取绝对路径
8.getParent ——获取上级目录
9.isFile ——判断是普通文件还是目录
10.isHidden ——判断是否是隐藏文件
11.lastModified ——获取最后修改日期(返回的是从1970年午夜到最后修改的毫秒数)
12.delete ——删除当前文件
可执行文件
用Runtime声明对象,然后调用getRuntime()方法创建;对象调用exec(String command)打开可执行文件
Runtime rt = Runtime.getRuntime();
rt.exec('C:/windows','Notic.exe');
调用delete删除文件
file.delete();
文件字节输入流:FileInputStream
两种构造函数
FileInputStream(String name);//创建一个名字是name的流
FileInputStream(File file);//创建一个指向文件的输入流
第二种方法创建输入流可能会发生一些错误,比如指向的文件不存在了。所以应在try—catch语句中创建流,然后再捕捉异常。
读取文件内容的例子
package com.zh;
import java.io.*;
public class Exampel {
public static void main(String[] args) {
int n = -1;
byte[] a = new byte[100];
try {
File f = new File("Example.java");
FileInputStream in = new FileInputStream(f);
while ((n=in.read(a,0,100))!=-1) {//读取100个字节到a,从a的第0位置开始,并返回读取的字节数,若读取到文件末尾则返回-1
String s = new String(a,0,n);//把实际读入的字节转化为字符串,注意n不可以写成100
System.out.println(s);
}
in.close();//调用close关闭流
} catch (IOException e) {//捕捉异常
System.out.println("ERROR"+e);
}
}
}
输出流FileOutputStream与输入流类似
package com.zh;
import java.io.*;
public class Exampel {
public static void main(String[] args) {
byte[] a = "Hello".getBytes();//调用getBytes方法将字符转换成字节
byte[] b = "Java".getBytes();
File file = new File("javaaaaaaa.txt");
try {
OutputStream out = new FileOutputStream(file);
System.out.println(file.getName()+"的大小是"+file.length()+"字节");
out.write(a);
out.close();
out = new FileOutputStream(file, true);//true表示流不会刷新文件,使得write可以在文件的末尾写入数据
System.out.println(file.getName()+"的大小是"+file.length()+"字节");
out.write(b);
System.out.println(file.getName()+"的大小是"+file.length()+"字节");
out.close();
} catch (IOException e) {//捕捉异常
System.out.println("ERROR"+e);
}
}
}
运行结果:
javaaaaaaa.txt的大小是0字节
javaaaaaaa.txt的大小是5字节
javaaaaaaa.txt的大小是9字节