File类
是文件和目录(文件夹)路径名的抽象表示。
创建一个文件
假设在D盘下创建一个.txt后缀的文本文件,需要用到的方法是createNewFile(),返回值为布尔类型,如果之前不存在这样一个文件,则新创建一个文件并返回true,否则返回false。
File file = new File("D:\\a.txt"); System.out.println(file.createNewFile()?"true":"false");
创建一个文件夹
假设在D盘下创建一个文件夹,需要用到的方法是mkdir(),返回值为布尔类型。如果之前不存在这样一个文件夹,则新创建一个并返回true,否则返回false。
File dir = new File("D:\\IO");
System.out.println(dir.mkdir()?"true":"false");
删除文件或文件夹
假设需要删除某个文件或文件夹,需要用到的方法是delete(),返回值为布尔类型。如果成功删除,则返回true,否则返回false。
//新建文件夹并删除
File dir = new File("D:\\IO");
System.out.println(dir.mkdir()?"true":"false");
System.out.println(dir.delete()?"删除成功":"删除失败");
//输出 删除成功
//新建文件并删除
File file = new File("D:\\a.txt");
System.out.println(file.createNewFile()?"true":"false");
System.out.println(file.delete()?"删除成功":"删除失败");
//输出 删除成功
需要注意的是:当想要删除一个文件夹时,文件夹必须为空,也就是说不能包含其他文件或文件夹。
字节流
一切皆字节!任何形式的内容在计算机中都是以字节的形式存储的。
当使用字节流输出一个字节数组时,可以用字符串调用getBytes()方法,使之成为字节数组。
字节流读取的超类(顶级父类)是:InPutStream
字节流输出的超类(顶级父类)是:OutPutStream
一般地,我们在使用字节流进行操作时都是用到它的一个子类:FileInPutStream和FileOutPutStream。
字节流在进行读取操作时,read(byte[] bytes )方法会返回一个int类型的值,表示读取的总字节数。
FileInputStream fis = new FileInputStream("D:\\1.txt");
/*while (true){
byte b = (byte) fis.read();
if (b==-1){
break;
}
System.out.println((char)b);
}*/
byte[] bytes = new byte[10];
int len = fis.read(bytes);
System.out.println(new String(bytes,0,len));
fis.close();
字节流的输出:
FileOutputStream fos = new FileOutputStream("d:\\1.txt",true);
//输出一个字节
fos.write('a');
//输出一个字节数组
/*byte[] bytes = "abcd".getBytes();
fos.write(bytes);*/
fos.close();
字符流
字符流读取的超类(顶级父类)是:Reader
字符流输出的超类(顶级父类)是:Writer
一般地,我们在使用字符流进行操作时都是用到它的一个子类:FileReader和FileWriter。
字符流在进行读取操作时,read(char[] chars)方法会返回一个int类型的值,表示读取的总字符数。
FileReader fr = new FileReader("d:\\3.txt");
char[] chars = new char[100];
int len = fr.read(chars);
System.out.println(new String(chars,0,len));
System.out.println(len);
fr.close();
字符流的输出:
FileWriter fw = new FileWriter("d:\\3.txt",true);
fw.write("锄禾日当午,汗滴禾下土\n");
fw.append("举头望明月,低头思故乡");
fw.close();
缓存读取流
将字符输入流转换带有缓存,可以一次读取一行的缓存字符读取流。
当读取的是字节流时,需要先将字节流转换成字符流,然后再执行读取一行字符的操作。
FileReader fw = new FileReader("d:\\5.txt");
BufferedReader br = new BufferedReader(fw);
System.out.println(br.readLine());
br.close();