1)文件 以及文件夹操作 :
---------------------------文件: -----------------------------
//1.1创建文件
File file=new File("d:\\123.txt");
//1.2判断文件是否存在
if(!file.exists()){
file.createNewFile();
}
//1.3删除
file.delete();
file.deleteOnExit();//退出jvm时,删除文件
//1.4可执行、可读、可写
file.canExecute();
file.canRead();
file.canWrite();
//1.5获取
file.getAbsoulatePath();
file.getPath();
file.getName();
file.getParent();
file.lastModified();//修改时间
//1.6判断
file.isFile();
file.isHidden();
file.renameTo();//重命名
------------------------文件夹 : ------------------------------
//2.1创建文件夹
File dir=new File("d:\\aaa\\bbb");
//2.2判断是否存在
if(!dir.exists()){
dir.mkdir();//一级目录
dir.mkdirs();//多级目录,创建目录链,如果父目录不存在则一同创建;
}
//2.3删除
dir.delete();
dir.deleteOnExit();
//2.4获取
dir.getAbsoulatePath();
dir.getPath();
dir.getName();
dir.getParent();
//2.5判断
dir.isDirectory();
dir.isHidden();
dir.renameTo();
//2.6列出来当前目录下的文件和子文件夹
dir.list(); //String[ ] —— 下级名称
dir.listFiles(); //File[] —— 下级所有文件和目录
4)read()方法:
(1)read方法,从输入流里面读取一个字节,该方法在你没有输入之后将会阻塞;
(2)返回值是下一个字节数据,或者是返回-1 ,是-1的情况是该文件到了结尾没有内容了;
5) \r 与 \n 与 \r\n ,换行与回车;
'\r'是回车, 使光标到行首, '\n'是换行, 使光标下移一格, Windows系统里面,每行结尾是“<回车><换行>”, 即“\r\n” ;
6)mkdir()与mkdirs()的区别:
mkdir():创建一个目录,但必须保证上级目录存在,不存在则创建失败。 mkdirs():创建一个目录,如果上级目录不存在,则一同来创建。在实际开发中经常使用mkdirs()。 PS:我们创建文件,使用的是creatNewFile();我们创建文件夹(目录),使用的是mkdirs()。
7)OutputStream和InputStream不能直接实例化,
OutputStream和InputStream都是抽象类,不能直接实例化,只能实例化他们的子类; 比如: FileOutputStream 和 FileInputStream 。
10)newLine( )、read()和readline() 方法
@1: newLine(); //换行符 @2:java中read()和readline()方法的对比: read方法:读取单个字符。 如果已到达流末尾,则返回 -1; readLine方法:读取一个文本行。
14)标准输入输出流(System.in、System.out)
Java的标准输入/输出分别通过System.in和System.out实现,默认情况下分别代表是键盘和显示器; PrintStream类:PrintStream为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。 PrintWriter类:向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream中的所有 print方法。它不包含用于写入原始字节的方法。 PrintStream主要操作byte流, 而PrintWriter用来操作字符流。读取文本文件时一般用后者,一般需要处理中文时用PrintWriter好了
16)对象流
流中流动的数据是对象流; ObjectInputStream: 对象输出流 ObjectOutputStream:对象输入流
2)IO分类:
-
按照流向 : 输入流和输出流;
-
按照格式 : 字节流和字符流;
3)字节流、字符流
字节流 :
-
InputStream ----> FileInputStream
-
OutputStream ----> FileOutputStream
字符流:
-
Reader ----->InputStreamReader----> FileReader
-
Writer ----->OutputStreamWriter----> FileWriter
8) 传输文本文件时用Buffered缓冲流,不传输文本文件的话,不必用Buffered缓冲流:
传输文本文件时,用Buffered缓冲流,可以传输中文,而且更有效率; 如果不传输文本文件的话,比如传输一个图片,则不必用Buffered缓冲流,用字节流即可;
9)缓冲流、字节流、字符流的识别方法:
BufferedInputStream、BufferedOutputStream,缓冲流。 只要看到XXX.._Stream,说明就是字节流; 同理,只要看到XXX.._Reader,说明就是字符输入流,看到XXX.._Writer,说明就是字符输出流。 字节流是什么什么Stream,字符流是什么什么Reader或什么什么Writer。
11)装饰者模式
装饰模式指的是:在不必改变原类文件和继承的情况下, 动态地扩展一个对象的功能 。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 应用场景: 需要扩展一个类的功能,或给一个类添加附加职责。
12)转换流(InputStreamReader、OutputStreamWriter):
InputStreamReader:字节字符转换输入流,将字节输入流转换为字符输入流; OutputStreamWriter:字符转换输出流,将内存中的字符转成字节保存到硬盘中。
13)内存流—ByteArrayInputStream、 ByteArrayOutputStream :
ByteArrayInputStream:将内容写入到内存中,是Inputstream的子类; ByteArrayOutputStream:将内存中的数据输出,是OutputStream的子类;
15)对象中哪些字段可以不序列化:
1 transient 修饰的字段 2 静态的字段 transient关键字解释: 1、transient关键字只能修饰变量,而不能修饰方法和类。 2、被transient关键字修饰的变量不再能被序列化
18)IO流的核心类
IO流的5个核心类: - File 文件类 - InputStream 字节输入流 - OutputStream 字节输出流 - Reader 字符输入流 - Writer 字符输出流
19)所有IO流汇总:
20)IO流的总分结构:
···