我的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,如果开发人员确信某个使用了可变参数的方法,在与泛型类一起使用时不会出现类型安全问题,就可以用这个注解进行声明,这样编译器就不会报警告。



posted @ 2021-08-24 10:36  恶龙咆哮~~  阅读(36)  评论(0)    收藏  举报