JAVA IO流
Java IO流 Java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流; 输出流:从内存读出到文件。只能进行写操作。 输入流:从文件读入到内存。只能进行读操作。 输入和输出,都是相对于系统内存而言 按照操作单元划分,可以划分为字节流和字符流; 字节流:以字节为单位,每次次读入或读出是8位数据。可以读任何类型数据。(1byte(B) = 8bit(位)) 字符流:以字符为单位,每次次读入或读出是16位数据。其只能读取字符类型数据。(1字符=2字节 ) 按照流的角色划分为节点流和处理流。 节点流:直接与数据源相连,读入或读出。 处理流(Filter Stream):与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。(DataInputStream、BufferedInputStream、BufferedReader等) Java Io流的40多个类都是从如下4个抽象类基类中派生出来的。 - InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。 - OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。
不同平台的换行符号: |符号|linux|windows|Java建议写法| |-|-|-|-| |换行符|\n|\r\n|System.getProperty(“line.separator”)| |路径分隔符|/|\|File.separator| |多个路径分隔符|:|;|File.pathSeparator|
字节流和字符流的区别: 字符流使用了缓存区(内存),执行了write(),文件中不会立刻有内容(除非缓冲区满了或者主动刷新缓冲区),需要等输出流对象关闭了,文件中才会有内容;字节流不使用缓冲区,执行了wirite(),文件中立刻就有内容了。 - ### 1.字符流
//步骤为:程序->字符流->缓存(数据先存放到缓存,再从缓存写入文件【主动刷新or流关闭】)->文件 import java.util.*; import java.io.*; public class WriterTest { public static void main(String[] args) { File file = new File("1.txt"); Scanner in = null; Writer out = null; try{ in = new Scanner(System.……