boolean exists(): 判断这个文件是否存在
boolean mkdir(): 创建文件夹路径(只能建一层)--make Directory boolean mkdirs(): 创建文件夹路径 createNewFile(): 创建文件 delete(): 删除文件 renameTo(File file): 对文件进行更名操作 getName: 获取文件名称 getPath: 获取文件路径 length: 获取文件大小 isDirectory: 判断这个东西是不是一个目录 isFile: 判断这个东西是不是一个文件 File[] listFiles: 获取当前这个路径下面所有的文件和文件夹
In / Out流
什么是流 流, 可以看成是一根管道, 用来读取文件的数据 原始的数据都是用过二进制的形式来进行数据的传输, 文件---10111010-->程序 文件<--10111010---程序 流的分类 按照数据流的方向 输入流(Input), 输出流(Output) 输入流: 从文件往程序走数据 输出流: 从程序往文件走数据
按照处理数据的单位不同:
八大数据类型所占字节数: byte(1), short(2), int(4), long(8) float(4), double(8) boolean(1) char(2)
字节流(以stream结尾的), 字符流(以Reader, Writer结尾的)
字节流: 一个字节占8位, 以一个字节为单位读数据 字符流: 一个字符占两个字节, 以一个字符为一个单位 按照功能分: 节点流, 处理流 节点流: 只有一个根管道套在文件上进行传输 处理流: 将节点流处理一下, 增强管道的功能, 相当于在管道上套一层
import java.io.File;public class FileTest { public static void main(String[] args){ File file=new File("D:\\0603\\Student.txt"); System.out.println(file.getName()); printf(file,1); } public static void printf(File file,int len){ if(file.exists()){ //检验文件是否存在 File[] file2 = file.listFiles(); for(File f:file2){ if(f.isDirectory()){ //判断文件是否是一个目录 printBlank(len); //创建空格 System.out.println(f.getName()); printf(f,len+1); }else{ printBlank(len); System.out.println(f.getName()); } } }else{ System.out.println("该文件不存在"); } } private static void printBlank(int len) { for(int i=0;i
InputStream的基本方法:
int read(): 每次调用这个方法, 就读取一个字节, 以整数的形式返回
int read(byte[] buffer---缓冲区): 让流每次读满一个缓冲区, 再统一处理, 先存在缓冲区里, 返回值int是返回实际当中读取了多少字节数(伤硬盘的原理) int read(byte[] buffer, int offset, int length): 也是一个缓冲区, 读取length长度的字节数, 存到buffer的缓冲区里, 从buffer的offset位置开始存, 返回值是实际读了多少字节数 close(): 关闭资源
OutputStream的基本方法:
void write(int b)
void write(byte[] b) int wirte(byte[] buffer, int offset, int length) close() flush(): 将缓冲区中的文件全部写出 在使用流的时候的一个良好的习惯, 先flush, 再closeReader的基本方法:
int read() int read(char[] c) int read(char[] c, int offset, int length) close()Writer的基本方法:
void write() void write(char[] c) void write(char[] c, int offset, int length) // 直接写一个字符串出去, 字符串里面的有一个方法s.toCharArray(), 查API void write(String s) void write(String s, int offset, int length) close() flush()
FileInputStream , FileOutputStream
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;public class Text1 { public static void main(String[] args){ File file=new File("D:\\0603\\person.txt"); //File file_out=new File("D:\\0603\\Student.txt"); int a=-1; try{ InputStream in = new FileInputStream(file); //OutputStream out= new FileOutputStream(file_out); while((a=in.read()) != -1){ System.out.print((char)a); } in.close(); }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } }
BufferedReader
readLine()---每次调用就会读取一行
BufferedWriter
writeLine(String s)---每次调用写出一行
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;public class Text2 { public static void main(String[] args){ String content[] = {"Java部","快速入门"}; //定义字符串数组 File file=new File("D:\\0603\\Student.txt"); Reader reader = null; //定义字符串 try{ FileWriter fw = new FileWriter(file); // 创建FileWriter类对象 BufferedWriter bufw = new BufferedWriter(fw); //创建BufferedWriter类对象 for(int k=0;k