文件分为普通文件,目录文件和特殊文件. 1.普通文件即有后缀的一般文件,例如xxx.java xxx.txt. 2.目录文件即文件夹 3.特殊文件即和硬件相关的文件 普通文件在创建时应注意父级文件都应该存在,否则会抛出异常. 目录文件创建用mkdirs方法,不管多少级目录都可以创建 特殊文件… 普通文件:
package threaddemo.iotest;
import java.io.File;
import java.io.IOException;
public class IoTest {
public static void main(String[] args) throws IOException {
File file = new File("E://asd//hfs.txt");
System.out.println("该文件是否存在: "+file.exists());
boolean tem=file.createNewFile();
System.out.println("该文件是否创建成功 "+tem);
System.out.println("该文件是否是目录文件 "+file.isDirectory());
System.out.println(file.getName());
System.out.println(file.getParent());
System.out.println(file.getPath());
System.out.println(file.getParentFile());
System.out.println("该文件是否存在: "+file.exists());
}
}
目录文件:
package threaddemo.iotest;
import java.io.File;
import java.io.IOException;
public class IoTest {
public static void main(String[] args) throws IOException {
File file = new File("E://hfs//fas");
System.out.println("该文件是否存在: "+file.exists());
boolean tem = file.mkdirs();
System.out.println("该文件是否创建成功 "+tem);
System.out.println("该文件是否是目录文件 "+file.isDirectory());
System.out.println(file.getName());
System.out.println(file.getParent());
System.out.println(file.getPath());
System.out.println(file.getParentFile());
System.out.println("该文件是否存在: "+file.exists());
}
}
结果:
文件拷贝:流对象,真正会抛出异常和需要关闭的是和底层打交道的FileReader那几个流对象. 两种方式,传统方式代码繁琐,但好理解:
public static void main2(String[] args) {
FileReader fileReader = null;
FileWriter fileWriter=null;
try {
fileReader = new FileReader("e://file.txt");
fileWriter = new FileWriter("e://file2.txt");
char[] a = new char[1024];
int tmp;
while((tmp=fileReader.read(a))!=-1){
fileWriter.write(a,0,tmp);
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
if (fileReader != null) {
fileReader.close();
}
if (fileWriter != null) {
fileWriter.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.第二种方式,用try语句,注意:括号里的对象在try语句执行完会自动调用close方法,但要实现Closeable接口,只有实现了该接口才能用try语句,该接口没有任何抽象方法需要重写,注意:父类实现某个接口或继承某个类,子类不显示实现该接口,则子类也默认实现了该接口或继承了该类.
public static void main3(String[] args) {
try (FileReader fileReader = new FileReader("e://file.txt");
FileWriter fileWriter=new FileWriter("E://file2.txt")) {
char[] a = new char[1024];
int tmp;
while((tmp=fileReader.read(a))!=-1) {
fileWriter.write(a, 0, tmp);
}
}catch (IOException e) {
e.printStackTrace();
}
}
}
也可以用自带的缓冲区类:
|