Java 文件操作
字符流-Writer和Reader用于读取文本-BufferedReader(new FileReader("path")) 读取文本文件-BufferedWriter(new FileWriter("path")) 写入到文本文件 字节流-InputStream和OutputStream图片、二进制文件-BufferedInputStream(new FileInputStream(new File("path"))) 读取二进制文件-BufferedOutputStream(new FileOutputStream(new File("path"))) 输出到外部文件不同数据类型所占字节数: byte 1 char 2 int 4 double 8 float 4 short 2 long 8 boolean 1向文件写入数据的时候,byte[] buffer = new byte[1024]是一个万精油的操作 因为它不论是写入字符还是字节效率都不错在Java中,数据写入流(如OutputStream)的write()方法有多个重载形式, 其中最常用的形式是write(byte[] b, int off, int len)。该方法有三个参数,分别是:1. byte[] b:该参数表示要写入的数据缓冲区,即要写入的数据存储在哪个字节数组中。write()方法会从该缓冲区中读取数据,并将其写入到输出流中。2. int off:该参数表示要写入的数据在缓冲区中的起始偏移量,即从缓冲区的哪个位置开始写入数据。例如,如果off等于2,则表示从缓冲区的第3个字节开始写入数据。如果off大于等于缓冲区的长度,则write()方法不会写入任何数据。3. int len:该参数表示要写入的数据的长度,即要写入多少个字节的数据。如果len小于等于0,则write()方法不会写入任何数据。如果len大于缓冲区中剩余的字节数,则write()方法只会写入剩余的字节数。
目录
1、向文件写入内容
2、读取文件内容
3、删除文件
4、将内容复制到另一个文件夹
5、输出文件大小
6、文件重命名
7、设置文件只读
8、设置文件可写
9、新建空文件
10、判断两个文件路径是否一致
1、向文件写入内容
//写入当当前路径下FileWriter fileWriter = new FileWriter(".\\\\robots.txt");BufferedWriter writer = new BufferedWriter(fileWriter);writer.write("Hello World");writer.close();
运行结果:当前目录下出现一个 "robots.txt"文件,内容为"Hello World"
2、读取文件内容
使用 readLine() 方法来读取文件内容
//读取当前路径下的文件"robots.txt"
FileReader fileReader = new FileReader(".\\\\robots.txt");BufferedReader reader = new BufferedReader(fileReader);String str;while ((str = reader.readLine()) != null){System.out.println(str);}
3、删除文件
使用 delete() 方法来删除文件并返回一个boolean类型表示删除结果
File file = new File(".\\\\src\\\\main\\\\java\\\\io\\\\readme.txt");if (file.delete()){System.out.println("删除成功!");}else{System.out.println("删除失败!");}
4、将内容复制到另一个文件夹
FileReader fileReader = new FileReader(".\\\\robots.txt");BufferedReader reader = new BufferedReader(fileReader);FileWriter fileWriter = new FileWriter(".\\\\result.txt");BufferedWriter writer = new BufferedWriter(fileWriter);String str="";while ((str = reader.readLine()) != null){writer.write(str+"\\n");}//关闭资源reader.close();writer.close();
5、输出文件大小
File file = new File(".\\\\robots.txt");if (file.exists()){System.out.println("文件大小为 "+file.length()+"KB");}
6、文件重命名
// 旧的文件或目录File oldName = new File("./runoob-test.txt");// 新的文件或目录File newName = new File("./runoob-test-2.txt");if (newName.exists()) { // 确保新的文件名不存在throw new java.io.IOException("file exists");}if(oldName.renameTo(newName)) {System.out.println("已重命名");} else {System.out.println("Error");}
7、设置文件只读
File file = new File(".\\\\info.txt");file.setReadOnly();//设置只读System.out.println("当前文件可写性: "+file.canWrite());//false
8、设置文件可写
File file = new File(".\\\\info.txt");file.setWritable(true); //设置可写System.out.println("当前文件可写性: "+file.canWrite());//true
9、新建空文件
//当前目录下创建一个文件"a.csv"
File file = new File(".\\\\a.csv");file.createNewFile();
10、判断两个文件路径是否一致
File file = new File("D:\\\\hello.png");File file1 = new File("D:\\\\a.jpg");if (file1.compareTo(file) == 0){System.out.println("两个文件路径一致");}else {System.out.println("两个文件路径不一致");}