1.创建文件的三种方式
package com.File;
import java.io.File;
//创建文件的三种方式
public class FoundFile{
public static void main(String[] args) {
//在D盘下新建一个目录用作文件的学习 D:/JAVA_FILE/test.txt
//根据路径得到一个文件对象
File file1 = new File("D:\\JAVA_FILE\\test.txt");
//根据文件的上层文件夹和该文件的名字得到一个文件对象
File file2 = new File("D:\\JAVA_FILE","test.txt");
//先根据文件夹路径得到文件对象,然后再得到其中的文件的文件对象
File file = new File("D:\\JAVA_FILE");
File file3 = new File(file, "test.txt");
}
}
2.文件的常用操作
package com.File;
import java.io.File;
import java.io.IOException;
import java.util.List;
//文件操作:创建,删除,重命名,判断,获取
public class FileOperation {
public static void main(String[] args) throws IOException {
//创建功能1:创建一个新文件,如果有的话,就不创建了。
//如果没有指定创建文件的路径的话,那么会在创建在项目路径下
//如果路径不存在的话,那么会出现异常
File file = new File("D:\\JAVA_FILE\\test1.txt");
boolean rst = file.createNewFile();
//创建功能2:创建一个新目录,如果有的话,就不创建了。
//该方法不能创建多重文件夹
File file1 = new File("D:\\JAVA_FILE\\aa");
boolean rst1 = file1.mkdir();
//创建功能3:创建多重文件夹
File file2 = new File("D:\\JAVA_FILE\\bb\\bb");
boolean rst2 = file2.mkdirs();
//删除功能:可以删除文件或文件夹
//删除文件
File file3 = new File("D:\\JAVA_FILE\\test.txt");
file3.delete();
//删除文件夹:文件夹下不能有文件夹或文件
File file4 = new File("D:\\JAVA_FILE\\aa");
file4.delete();
//重命名功能:可以给文件夹或文件重命名
//文件重命名
File file5 = new File("D:\\JAVA_FILE\\test1.txt");
File file6 = new File("D:\\JAVA_FILE\\testRename.txt");
file5.renameTo(file6);
//文件夹重命名
File file7 = new File("D:\\JAVA_FILE\\test");
File file8 = new File("D:\\JAVA_FILE\\testRename");
file7.renameTo(file8);
//判断功能
//判断是否是目录
File file9 = new File("D:\\JAVA_FILE\\testRename");
System.out.println(file9.isDirectory());
//判断是否是文件
System.out.println(file9.isFile());
//判断是否存在
File file10 = new File("D:\\JAVA_FILE\\abc");
System.out.println(file10.exists());
//判断可读
System.out.println(file9.canRead());
//判断可写
System.out.println(file9.canWrite());
//判断是否隐藏
System.out.println(file9.isHidden());
//获取功能
//获取绝对路径
System.out.println(file9.getAbsolutePath());
//获取相对路径
System.out.println(file9.getPath());
//获取名称
System.out.println(file9.getName());
//获取长度,字节数
System.out.println(file9.length());
//获得最后一次修改时间
System.out.println(file9.lastModified());
//获得指定目录下所有的文件或文件夹的名称数组
File file11 = new File("D:\\JAVA_FILE\\bb");
String[] list = file11.list();
for(String list1 : list){
System.out.println(list1);
}
//获得目录下所有文件或文件夹的File数组
File[] list2 = file11.listFiles();
for(File list3 : list2){
System.out.println(list3.getAbsolutePath());
}
}
}
3.文件输出流
package com.File;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class IoStream {
public static void main(String[] args) throws Exception {
File file = new File("D:\\JAVA_FILE\\IoStream\\01.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
String hello = "hello java io";
fileOutputStream.write(hello.getBytes());
fileOutputStream.close();
}
}
4.缓存流
package com.File;
import java.io.*;
//BufferedReader的子类
public class TestBufferedReader {
public static void main(String[] args) throws IOException {
File file = new File("D:\\JAVA_FILE\\testBufferedReader.txt");
BufferedReader br = new BufferedReader(new FileReader(file)) ;
String line;
while ((line=br.readLine()) != null){
System.out.println(line);
}
br.close();
}
}
5.数据流
package com.File;
import java.io.*;
//数据输入输出流,以适当的方式把数据写入流中,或读出
//是inputstream和outputstream的子类
public class TestDateStream {
public static void main(String[] args) throws Exception {
File file = new File("D:\\JAVA_FILE\\testDateStream.txt");
DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
//写数据,8中数据类型
dos.writeByte(100);
dos.writeShort(101);
dos.writeChar(102);
dos.writeInt(103);
dos.writeFloat(104);
dos.writeDouble(105);
dos.writeLong(106);
dos.writeBoolean(true);
dos.writeUTF("HELLO");
dos.close();
//读数据
DataInputStream dis = new DataInputStream(new FileInputStream(file));
byte b = dis.readByte();
short s = dis.readShort();
char c = dis.readChar();
int i = dis.readInt();
float f = dis.readFloat();
double d = dis.readDouble();
long l = dis.readLong();
boolean bo = dis.readBoolean();
String st = dis.readUTF();
System.out.println(b+" "+s+" "+c+" "+i+" "+f+" "+d+" "+l+" "+bo+" "+st);
dis.close();
}
}
package com.File;
import java.io.*;
//BufferedReader的子类
public class TestLineNumberReader {
public static void main(String[] args) throws IOException {
File file = new File("D:\\JAVA_FILE\\testLineNumberReader.txt");
LineNumberReader lnr = new LineNumberReader(new FileReader(file));
String line;
//设置行号
lnr.setLineNumber(10);
//得到行号
while((line=lnr.readLine()) != null){
System.out.println(lnr.getLineNumber()+ ":" + line);
}
lnr.close();
}
}
7.内存流
package com.File;
import java.io.*;
//内存操作流
//其输入流有点鸡肋,不使用看也可以得到内存中的数据
public class TestMemoryStream {
public static void main(String[] args) throws IOException {
//操作字节
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write("hello".getBytes());
byte[] data = baos.toByteArray();
System.out.println(new String(data));
//操作字符
CharArrayWriter caw = new CharArrayWriter();
char[] chs = {'h','e','l','l','o'};
caw.write(chs);
char[] data1 = caw.toCharArray();
System.out.println(data1);
//字符串
StringWriter sw = new StringWriter();
sw.write("hello");
String data2 =sw.toString();
System.out.println(data2);
baos.close();
}
}
8.打印流
package com.File;
import javax.xml.crypto.Data;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Date;
//打印流(字节打印流和字符打印流)
//继承outputStream
public class TestPrintWriter {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("D:\\JAVA_FILE\\testPrintWriter.txt");
PrintWriter pw = new PrintWriter(new FileOutputStream(file));
pw.write("hello");
//特殊功能1: 可以打印所有的数据(包括引用),不会清空数据
pw.println(1);
pw.println(2.3);
pw.println('a');
pw.println("hh");
pw.println(true);
pw.println(new Date());
pw.flush();
pw.close();
//特殊功能2:自动刷新
PrintWriter pw1 = new PrintWriter(new FileOutputStream(file),true);
pw.println(1);
pw.println(2.3);
pw.println('a');
pw.println("hh");
pw.println(true);
pw.println(new Date());
pw.flush();
pw.close();
}
}
完整代码:https://download.csdn.net/download/m0_45025658/12381633