day05笔记:IO流,IO异常 需要在方法处加上抛出异常 throws IOException
FileWriter类:
用于写入字符流。====文本文件。
如果是其他基本类型时:使用String.valueOf,直接转为字符串
如果是引用类型,使用String.valueOf,会将该变量转为地址字符串
使用方法:
1、构造方法:FileEriter(String filename) 传入一个文件的路径
//FileWriter fw = new FileWriter("a.txt") 创建一个对象,调用系统资源创建a.txt(相对路径,项目根目录中、也可以指定绝对路径)
//因\有转义作用,所以输入绝对路径时需要写两次\\;例:d"\\workspace\\a.txt.
//默认是覆盖写入,若想追加写入,则在定义的时候,在文件路径后面加入 ,true
2、write(String str) 向文件中写str
//fw.write("孙旭朋")
3、void flush() 将内存中的数据刷新到文件中
//fw.flush();
4、void close() 关闭释放系统底层资源。
//fw.close(); 方法、程序结束时,必须要写
//注:flush,close都有将数据刷新到文件中的功能
//区别:close是关闭流,执行之后不能再使用流;flush只刷新,可以重新使用。
write方法:
1、void write(String str):写一个字符串数据
2、void write(String str,int index,int len):写一个字符串中的一部分数据
//String s="HelloWorld";
//fw.write(s,0,5);=======sop(Hello)
3、void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97
4、void write(char[] chs):写一个字符数组数据
//char[] chs = {'a','b'};
//fw.write(chs);========sop(ab)
5、void write(char[] chs,int index,int len):写一个字符数组的一部分数据
getEncoding
获取文件的编码格式
FileReader类:
使用的方法:
FileReader fr = new FileReader("b.txt")
//int chr
//while((char=fr.read())!=-1){
// fr.read();
}
read()
读取文件中的单个字符。返回作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1
read(char[] xx)
将字符读入数组,读取的字符数,如果已到达流的末尾,则返回 -1 。
read(char[] cbuf, int off,int len)
将字符读入数组的某一部分,读取的字符数,如果已到达流的末尾,则返回 -1
参数:
cbuf - 目标缓冲区
off - 开始存储字符处的偏移量
len - 要读取的最多字符数
getEncoding方法
获取文件的编码格式
BufferedReader
//从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取;
BufferedWriter
//将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入
定义方式:
BufferedReader bf = new BufferedReader(new FileReader("a.txt")
readLine()方法:
读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。
返回:包含改行内容的字符串,不包含任何行终止符,如果已经到达流末尾,则返回 null
skip(long n)方法:
跳过字符
参数:n - 要跳过的字符数
返回:实际跳过的字符数。
write()方法:
1、write(int c)
写入单个字符
2、write(char[] cbuf,int off,int len)
写入字符数组的某一部分。
一般来说,此方法将给定数组的字符存入此流的缓冲区,根据需要刷新该缓冲区,并转到底层流。但是
如果请求的长度至少与此缓冲区大小相同,则次方法将刷新该缓冲区并将各个字符直接写入底层流。因此多余的BufferedWriter
将不必复制数据
3、write(String s,int off,int len)
写入字符串的某一部分。如果 len 参数的值为负数,则不写入任何字符。这与超类中此方法的规范正好相反,它要求抛出 IndexOutOfBoundsException。
4、newLine()
写入一个行分隔符。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符。
|