如果抽象类或者接口中的抽象的方法被子类覆写 那么实例化这个子类的时候 所调用的方法一定是被覆写的
文件和目录路径名的抽象表现形式
获取文件的对象 创建对象 通过构造方法
文件操作有俩基本功能
创建文件 createNewFile 调用此方法是才会创建
删除文件 delete //Boolean型
盘点路径是否存在 exists //存在返回true
File file = new File("E:"+File.separator+"demo.txt");
if(file.exists()) {//存在返回true
file.delete();//文件的删除
}else {
file.createNewFile();//文件的创建
}
isFile判断对象 是路径 还是目录
separator 根据系统不同分隔符不一样
File file = new File("E:"+File.separator+"demo.txt");
1.指定一个文件的路径 getParentFile 返回此抽象路径的父目录名 没有返回null
2.创建目录 mkdirs 没有路径 会自动创建路径
getName 取得文件名称
isDirectory 给定的路径是否是文件夹
isHidden 是否是隐藏文件
lastModified 最后一次修改日次
length 以字节为单位返回
// System.out.println("文件名"+file.getName());
// System.out.println("目录?"+file.isDirectory());
// System.out.println("文件?"+file.isFile());
// System.out.println("隐藏?"+file.isHidden());
// System.out.println("修改时间"+new Date(file.lastModified()));
// System.out.println("文件大小"+file.length());
修改路径
file.renameTo(newfile)//剪切加重命名
File result[] = file.listFiles();
for(int x = 0 ; x < result.length; x++) {
System.out.println(result[x]);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("E:"+File.separator+"myio");
print(file);
}
public static void print(File file) {
if(file.isDirectory()) {//file是路径
File result[] = file.listFiles();
if(result != null) {
for(int x = 0; x < result.length; x++) {
print(result[x]);
}
}
}
System.out.println(file);
}
对文件内容进行操作
字节操作流 OutputStream InputStream
字符操作流 writer Reader
操作完后关闭
字节输出流OutputStream 抽象类 得有子类 实例化FielOutputStream
单个字节 int 一组byte[] 指定位置读取output.write(data.getBytes(),0,3);
File file = new File("E:"+File.separator+"myio"+File.separator+"demo.txt");
if(!file.getParentFile().exists()) {//存在返回true //父路径不存在
//file.delete();//文件的删除
file.getParentFile().mkdirs();//创建
}
OutputStream output = new FileOutputStream(file);//创建一个输出流
String data = "hello java";
output.write(data.getBytes());//输出数据 按字节方式输出
output.close();//关闭资源
InputStream 字节输入流
read 读取单个字节
读取一组字节
读取指定字节
InputStream input = new FileInputStream(file);
byte data[] = new byte[1024];
int len = input.read();
input.close();
System.out.println(new String(data,0,len));
手机短信 开辟一个指定长度的空间接收
InputStream input = new FileInputStream(file);
byte data[] = new byte[1024];
int foot = 0;//角标
int temp = 0;
while((temp = input.read()) != -1) {
data[foot++] = (byte) temp;
}
input.close();
System.out.println(new String(data,0,foot));
writer 字符输出流
相比outputStream 直接可以字符输出
Writer out = new FileWriter(file);
String data = "hello";
out.write(data);
out.close();
Reader 字符读取流
Reader in = new FileReader(file);
char data[] = new char[1024];
int len = in.read(data);
System.out.println(new String(data,0,len));
字节流 针对终端数据
字符流 针对缓冲区