构造输出流的boolean参数,boolean append,true为append,false为覆盖
构造参数可以是 File 或 文件名字符串
字符流:InputStream、OutputStream
文件输入输出流:基础流
FileOutputStream
int read() 方法 返回下一字节(int 0~255),到末尾返回-1
int read(byte[] b),int read(byte[] b, int off, int len),返回读到的长度,-1表示读到了末尾
void close() 关闭流
FileInputStream
void write(),void write(byte[] b),void write(byte[] b,int off,int len)
void close() 关闭流,void flush() 清空缓冲区
字符流:Reader、Writer
字符文件输入输出流:
FileReader
int read()、int read(char[] cbuf)、int read(char[] cbuf,int off,int len)
FileWriter
void write(char[] cbuf,int off,int len), void write(String str, int off,int len)
FileWriter append(char[] cbuf,int off,int len), FileWriter append(String str, int off,int len)
fluse()清空缓存
append和write方法的区别就是:
1.append可以添加null的字符串,输出为"null" 2.而write会抛出空指针异常.
2.append方法的返回值是FileWriter,所以可以fw.append().append().append()。。。。
字节流装饰成字符流:转换流
InputStreamReader 和 OutputStreamWriter 使用转换流可以在一定程度上避免乱码,还可以指定输入输出所使用的字符集。
字符流包装成带缓存的字符流:缓存流
BufferedReader(FileReader fr)
和BufferedWriter(FileWriter fw)
一次读写一行
reader.readLine()+"\n"
返回值是字符串!!!
返回的一行字符中不包含换行符
,所以输出的时候要自己加上换行符
wtiter.write(String s, int off, int len) 不写入换行符
wtiter.newLine() 写入一个行分隔符
PrintWriter.PrintStream流:字节转字符装饰流,转换流
PrintWriter pw = new PrintWriter("demo.txt");
pw.println(string);
收集日常日志:
properties:
Hashtable 的子类,可以直接向流写入和读取的Map
方法:
ppt.put(String key,String value)
String getProperty(String key) 用指定的键在此属性列表中搜索属性。
ppt.store(FileWriter fw,"注释") 往字符流里写
ppt.load(FileReader fr) 从字符流里读
或者:ppt.list(PrintStream ps)