IO流
输出流(out)(往文件写数据)和输入流(in)(从文件中读数据)
字节流
OutputStream(InputStream)祖辈 <字节输出输入流>
– FileOutputStream (FileInputStream) 父辈 <文件输出输入流> (1,把普通输入字节流包装成高效字节流,适合传视频图片的文件)
– BufferedOutputStream (BufferedInputStream ) 子辈 (和父辈无系)<高效字节缓冲输出输入流>(2,在fosfIs中间转为高效
– PrintStream 子辈 (和父辈没关系)<字节打印流>
– ObjectOutputStream(ObjectInputStream) 父辈 <对象序反序列化(列化)流 >
字符流
Writer 祖辈 (Reader)<字符输出输入流>1
– OutputStreamWriter (InputStreamReader) 父辈 <字节转字符输出输入流> (2.先要有OutputStream,再转字符流)
– FileWriter (FileReader ) 子辈(和父辈有关系,从父辈继承来的)<字符输出输入流> (1创建对象直接用)
– BufferedWriter (BufferedReader) 父辈 <高效字符缓冲输出流 > (2普通输入字符流包装为高效字符输入流)
– PrintWriter 父辈 <字打印流>
字节流 | |||
---|---|---|---|
字节输出输入流OutputStream(InputStream) | 祖 | inputStream is = System.in | |
普通文件字节输出输入流FileOutputStream (FileInputStream) | 父 | OutputStream outputStream = new FileOutputStream(“output.txt”); | 是 |
高效字节输出输入流BufferedOutputStream (BufferedInputStream ) | 子(和父辈2无系) | 创建FileInputStream FileInputStream fis = newbFileInputStream(“aa.txt”); 把普通流包装成高效流 BufferedInputStream bis = new BufferedInputStream(fis); | 否 |
对象序反序列化ObjectOutputStream(ObjectInputStream) | 父辈 | FileOutputStream fos = new FileOutputStream(“1.txt”); ObjectOutputStream oos = new ObjectOutputStream(fos); | 否 |
字节打印流PrintStream | 子辈 (和父辈没关系) | FileOutputStream fos = new FileOutputStream(“output.txt”); PrintStream ps = new PrintStream(fos); | 是 |
字符流 | |||
---|---|---|---|
字符输出输入流Writer | 祖 | ||
字节转字符输出输入流OutputStreamWriter (InputStreamReader) | 父 | 创建字节输出流 FileOutputStream fos = new FileOutputStream(“dd.txt”); 创建字节流转字符输出流对象 要从字节流转化OutputStreamWriter osw = new OutputStreamWriter(fos);inputStream也可以 | 否 |
普通字符输出输入流FileWriter(FileReader) | 子,从父辈继承来的OutputStreamWriter | Writer w = new FileWriter(“data.properties”); | 是 |
高效字符输出输入流BufferedWriter (BufferedReader) | 父 | 创建字符输出流对象 FileWriter fw = new FileWriter(“cc.txt”); 通过字符输出流对象包装成为高效字符缓冲输出流 BufferedWriter bw = new BufferedWriter(fw); | 否 |
字符打印流PrintStream | 父 | PrintWriter pw = new PrintWriter(“ff.txt”); | 是 |
write();//写入
flush();//刷新,高效流必刷新
newLine();//换行(Bufferedwrite高效字符特有)
readLine();//读一行(BufferedReader高效字符特有)
a.getBytes();//字符串转字节数组
a.println();打印流
字符字节可以指定编码,打印流只有输出,写出
transient关键字
文件夹
创建File类对象 File 对象名 = new File(“文件路径”)
getAbsolutePath():获取绝对路径
getPath():获取路径(用什么方式创建的就获取什么路径)
getParent():获取所在文件夹路径
getName():获取文件/文件夹名称
exists():文件或文件夹是否存在,有就true
createNewFile():创建文件
mkdir():创建文件夹
mkdirs():创建多级目录 ,执行成功true
delete() 删除文件夹不能为非空(有东西),否则删除失败
File 对象名 = new File(“文件路径”)
建一个文件:boolean flag = f.mkdir();
boolean isFile():判断文件对象是否是文件
booleam isDirectory():判断文件对象是否是文件夹
File[] listFiles():获取文件夹下所有的file对象(包括文件或文件夹)
返回的是File类数组
String[] list():获取文件夹下所有的文件或文件夹 返回的是字符
串数组