我的java学习第十天
Day10
1.IO流
Java中的IO流主要都派生至一下4大抽象流,[抽象流------->抽象类] : 都是java.io包中的,分为如下四种
| 操作单位流动方向 | 输入流 | 输出流 |
|---|---|---|
| 字节流 | InputStream | OutputStream |
| 字符流 | Reader | Writer |
2.字节流
构造方法:(输入)
1.FileInputStream(File file) 表示从file指向的文件中读取
2. FileInputStream(String name) name表示文件的路径名(路径+文件名)
构造方法:(输出)
FileOutputStream(File file)
FileOutputStream(String name)
FileOutputStream(File file, boolean append)
FileOutputStream(String name, boolean append)
方法:
void write(int b) 调用一次写入一个数据字节
void write(byte[] b) 调用一次,可以把一个byte数组中的数据写入
void write(byte[] b, int off, int len) 调用一次,把b数组中的一部分数据写入
3.字符流
文件输入流:
Reader r = new FileReader("D:/123.txt");
char[] cbuf = new char[3];
int len;
while((len = r.read(cbuf))!=-1){
System.out.println(new String(cbuf,0,len));
}
r.close();
文件输出流:
void write(String str) 写入字符串。
void write(String str, int off, int len) 写入字符串的一部分
4.字节流和字符流的区别
1.操作的单位不一样,一个是字节,一个是字符
2.操作中文的时候使用字符流更方便, 字节流更广泛:文本,视频,音频,图片...
3.字符流中有可以直接写字符串的方法
4.字节输出流 : 程序 ---> 磁盘文件 如果不关闭流也会写入字符输出流 : 程序 ---> 缓冲 ---> 磁盘文件 如果不关闭流或者刷新缓冲区,不会写入文件字符输出流,关闭的时候会先刷新,关闭之后不能够在操作,刷新之后可以继续操作。
5.缓冲流
之前循环独写数据,操作磁盘的次数非常多,影响性能,通过缓存流,可以先缓存大量读写数据,等到比较多了之后,在连接磁盘一次从磁盘读取或者写。避免多次连接磁盘影响性能,缓冲流的使用[缓冲,达到高效读写操作。
6.文件
1.文件 : 一般理解文件,例如文本文件 word文件 excel文件 压缩文件 图片 视频,java 文件...
2.文件夹 : 装文件
3.在一个文件夹下面不能够有两个名字一样的文件(A.txt a.txt 也是不能同时存在的)或者文件夹
4.后缀名 : 一般来说通过后缀名判断类型,更改后缀名是否会改变文件中的内容
5.不能够把数据直接写入文件夹,而是写入文件中
7.反射
在代码运行时期,动态地去获取类中的信息(类的信息,方法信息,构造器信息,字段等信息。
8.注解
注解,也叫元数据,标签,注释。注解叫注释的时候,容易和java的代码注释混淆,一种代码级别的说明。
eg:
@Override注解用于标识方法重写,例如当前类中重写tostring()方法
@Deprecated注解用于标识方法已过时
@SuppressWarings注解用于抑制编译器警告,直白的讲就是消除Eclipse上那条黄色警告线,但编译器里关于这条警告的信息还在。
@SafeVarargs抑制堆污染警告(单独警告),直白的讲就是使用泛型和可变参数搭配使用将会产生的编译器警告,可以使用@SuppressWarnings消除警告,后来在Java7引入了新的注解,就是@SafeVarargs,如果开发人员确信某个使用了可变参数的方法,在与泛型类一起使用时不会出现类型安全问题,就可以用这个注解进行声明,这样编译器就不会报警告。

浙公网安备 33010602011771号