文件常用方法
//File.separator 属性帮我们获取当前操作系统路径拼接符号
File f = new File("E:"+File.separator+"MFC.txt");
File f2 = new File("E:\\MFC.txt");
f.canRead();//判断是否可读
f.canWrite();//判断是否可写
f.getName();//获取文件名
f.getParent();//获取文件上级目录
f.isDirectory();//是否是目录
f.isFile();//是否是文件
f.isHidden();//是否隐藏
f.length();//获取文件大小
if(f.exists()){//是否存在
f.delete();//删除文件
}else{
try {
f.createNewFile();//创建新文件
} catch (IOException e) {
e.printStackTrace();
}
}
f.equals(f2);//比较两个文件的路径
f.getAbsolutePath();//获取绝对路径
f.getPath();//获取相对路径
f.toString();//toString 效果 也是 获取相对路径
文件对目录的操作
File f = new File("E:\\Windows程序设计");
f.mkdir();//创建单个目录
f.mkdirs();//创建多层目录
f.delete();//删除一个目录(前提目录是空的)
f.list();//查看文件夹下的全部文件夹 包含文件
输入输出流
1 读取一个字符
import java.io.*;
public class test {
public static void main(String[] args) throws IOException {
File f = new File("E:\\MFC.txt");
FileReader fr = new FileReader(f);
fr.read();//只能读取一个字符 返回字符的ASCII码 如果到了文件结尾返回-1
int fd;
while ((fd = fr.read()) != -1){
System.out.print((char) fd);//
}
fr.close();//关闭流
}
}
读取一些字符
import javax.print.DocFlavor;
import java.io.*;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) throws IOException {
File f = new File("E:\\MFC.txt");
FileReader fr = new FileReader(f);
char[] ch = new char[5];//缓冲数组
int len = fr.read(ch);//返回实际读取的长度 读取五个保存到ch中
while (len != -1){
for (int i=0;i<len;i++){
System.out.print(ch[i]);//获取ch数组中的数据
}
len = fr.read(ch);
}
fr.close();//关闭流
}
}
写入数据
import java.io.*;
public class test {
public static void main(String[] args) throws IOException {
File f = new File("E:\\MFC.txt");
FileWriter fw = new FileWriter(f,false);//对源文件 覆盖 true 追加文件
fw.write("A");//写入一个字符
fw.close();
}
}
写入一些数据
public class test {
public static void main(String[] args) throws IOException {
File f = new File("E:\\MFC.txt");
FileWriter fw = new FileWriter(f,false);//对源文件 覆盖 true 追加文件
String str = "MFC微软基础类库";
char[] chars = str.toCharArray();//字符串转化字符数组
fw.write(chars);//写入字符数组
fw.close();
}
}
不要用字符流 操作 非文本文件!!!
字节流 输入输出流 完成exe文件拷贝
import java.io.*;
public class test {
public static void main(String[] args) throws IOException {
File f1 = new File("E:\\Program Files (x86)\\Code\\C++\\a.exe");//具体文件
File f2 = new File("E:\\a.exe");//目标地址
FileInputStream fis = new FileInputStream(f1);//文件读取
FileOutputStream os = new FileOutputStream(f2);//文件写入
byte[] b = new byte[1024];//缓冲数组
int read = fis.read(b);//读取文件到缓冲数组中 返回实际读取的字节大小
//循环读取 文件内容 并且 写入目标地址
while (read != -1){
os.write(b);//把 字节数组的内容 写入
read = fis.read(b);//读取内容到字节数组中
}
os.close();
fis.close();
}
}
完成了exe文件的拷贝