行分割符在java中可以通过方法得到.

系统属性名是line.separator.

不同平台的行分隔符是不同的。

windows7:\r\n

macOS:\n

--------------------------------

System.getProperty("line.separator");//执行系统属性名/


FileWriter : 没有缓冲区功能

---------------------------

本身没有新增任何功能,继承的OutputStreamWriter。

write(){

//直接写入数据到文件中。

sun.nio.cs.StreamEncoder.write(...);

}


BufferedWriter:

----------------------------------

对Writer进行包装,里面定义缓冲区,提供写入单个字符、char[]、String方法。

提高写入效率。


等级树结构:Object --> Writer --> BufferedWriter

flushBuffer() : 清理缓冲区,将缓冲区数据写入目的地。

close()方法 : 包含flushBuffer()。

        

        缓冲区要结合流才可以使用。

        在流的基础上对流的功能进行了增强。

    

FileReader

-----------------

继承关系树:Object --> Reader --> InputStreamReader --> FileReader

read() {

InputStreamReader.read(){

sun.nio.cs.StreamDecoder.read();

}

}

 

BufferedReader

------------------

继承关系树:Object --> Reader --> BufferedReader --> LineNumberReader

read(){

char[] cbuf = ... ;

cbuf[xxx] = c ;

fill();

return c ;

}

引入流是为了避免对物理文件的频繁访问。


byte[] bytes = new byte[1023];

byte[] b2 = bytes ;

bytes = null ;


flush()//清理

refresh()         //刷新

clear()//清空


字节流:

基本操作与字符流类相同。

但它不仅可以操作字符,还可以操作其他媒体文件(JPG.MP3.AVI...)


OutputStream:输出流(字节流)

---------------------------------

        是FilterOutputStream和FileOutputStream的父类。


InputStream:输入流(字节流)

---------------------------------

        是FilterInputStream和FileInputStream的父类


metadata : 元数据,描述数据的数据。

-----------------------------------

        在Java中元数据以标签的形式存在于Java代码中,元数据标签的存在并不影响程序代码的编译和执行,它只是被用来生成其它的文件或针在运行时知道被运行代码的描述信息。