字节流
主要格式
/**
* 主要用这种形式
* 路径字符串作为参数
*/
File f1 = new File("a.txt");
字节流的主要方法
/**
* isDirectory判读是否为文件夹
* isFile判断是否为文件
* length是长度,一个中字为3个字符
* delete删除文件
* mkdirs递归创建文件夹
* renameTo改名
* getPath获取相对路径
* getAbsolutePath获取绝对路径
*/
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
System.out.println(f1.length());
File f2 = new File("IO/Test");
System.out.println(f2.isDirectory());
System.out.println(f1.getName());
System.out.println(f2.getName());
创建文件
//创建文件
File f3 = new File("b.txt");
try{
f3.createNewFile();
}catch (IOException e){
e.printStackTrace();
}
System.out.println(f3.isFile());
创建文件夹
//创建文件夹
File n = new File("Test2/hello/c.txt");
/**
* 获取上一级,递归创建文件夹,在本级创建文件
* 递归创建文件夹,会连最后一级也创建成文件夹
*/
//获取上一级File对象
File m = n.getParentFile();
//递归创建文件夹
m.mkdirs();
try{
n.createNewFile();
}catch (IOException e){
e.printStackTrace();
}
File f4 = new File("e.txt");
n.renameTo(f4);//改名
f4.getPath();//相对路径
f4.getAbsolutePath();//绝对路径
FileInputStream 读取文件(输入流),read的第一种形式
FileInputStream fis = null;
try{
fis = new FileInputStream("文件地址");
int temp = 0;
while((temp=fis.read)>0){
System.out.println((char)temp);
}
}
read第二种形式
FileInputStream f = new FileInputStream("文件地址");
//创建一个可放内容的数组,长度用available方法
byte[] b = new byte[f.available()];
//读取文件,将文件内的字节放在byte数组里
f.read(b);
//打印
System.out.println(new String(b));
FileOutputStream 写入文件(输出流)
FileOutputStream fos = null;
//要写入的东西
String s = "abc";
替换写入(原本的东西会被替换):
fos = new FileOutputStream("要写入的文件地址");
追加写入(会在原本的东西后继续添加):
fos = new FileOutputStream("要写入的文件地址",true);
//将要写入的东西放进byte数组里,用getBytes方法
byte[] b = s.getBytes();
//输出数组,用write方法
fos.write(b);
//打印
System.out.println(new String(b));
复制文件的方法
public class TestCopy {
public static void main(String[] args) {
copy("e.txt","Test2.Hello.abc.txt",true);
}
public static void copy(String inPath,String outPath,boolean isAppend){
String s = null;
try {
s = readFromFile(inPath);
writeIntoFile(outPath,isAppend,s);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String readFromFile(String inPath) throws IOException {
File f = new File(inPath);
if (!f.exists()){
return null;
}
if (f.length()==0){
return "";
}else {
FileInputStream fis = new FileInputStream(f);
byte[] b = new byte[fis.available()];
fis.read(b);
return new String(b);
}
}
public static void writeIntoFile(String outPath,boolean isAppend,String str) throws IOException{
if (null==str){
System.out.println("输入不能为空,写入失败");
return;
}
File f = new File(outPath);
if (!f.getParentFile().exists()){
f.getParentFile().mkdirs();
}
FileOutputStream fos =new FileOutputStream(outPath);
fos.write(str.getBytes());
System.out.println("文件写入成功");
fos.close();
}
}