Java日记之IO流(字符流部分)

  • Post author:
  • Post category:java


书接上文 ,对于数据库的操作我们已经了解了一二 , 下面讲讲对文件的操作

今天有点sad...



1. I/O流概述


1.



数据单位的不同

区分 : 字符流和字节流

字符流以

字符

为单位读取 , 字节流以

字节

为单位读取


2.



传输方向

分 : 输入流 和 输出流

输入 : 由源—>程序

输出 : 由程序—>源



2.字符流


①字符输入输出流


FileReader类 : 输入流 , 从源到程序

FileWriter类 : 输出流 , 从程序到源 (fileWriter默认为覆盖方式)

write() ; //向文件中写入数据
close() ; //关闭流 ,流是占用文件的
append() ; //追加参数 ,true表示追加 ,false表示覆盖
read(char[]) ; //将文件中的字符读入char数组中


②带缓冲区的读写


用字符流对文件进行读写效率非常低 ( 逐个字符读写 )

所以Java提供了

字符流缓冲区

进行读写操作,提高效率

1.原始人方法 (char[]字符数组充当缓冲区)
public static void main(String[] args) throws Exception {
		FileWriter fileWriter = new FileWriter("writer.txt",true);
		FileReader fileReader = new FileReader("writer.txt");
		try {

			fileWriter.write("Java");

			int len = 1024;
			char[] buff = new char[len];

			while ((len = fileReader.read(buff)) != -1) {
			这种方法写入文件,必须将写入设置为追加 ,否则是一片空白
				fileWriter.write(buff, 0, len);
			}

			fileReader.read(buff); 读入到缓冲区数组中

			for (int i = 0; i < buff.length; i++) {
				System.out.print(buff[i]);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			fileWriter.close();
			fileReader.close();
		}

	}
2.BufferedReader和BufferedWriter ,带缓冲区的字符缓冲流(性能高)
* BufferedReader : 逐行处理文件
步骤 : (1)将文件装入FileReader对象中 ,
再将FileReder对象装入BufferedReader

(2)使用readLine() ;方法 (只能读取一行)

(3)close();

具体实现
public void test02() throws Exception {
		BufferedReader br = new BufferedReader(
		new FileReader("reader.txt"));
		BufferedWriter bw = new BufferedWriter(
		new FileWriter("writer.txt",true));不加参数2,也存在覆盖情况
		
		try {
			
			
			String str;
			读入内容并做判断是否为空
			while((str=br.readLine())!=null) {				
			从reader.txt读入并写入writer.txt中
				bw.write(str);
				我现在想插入一个换行符
				bw.newLine(); 
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}finally {
			br.close();
			bw.close();
		}
		
	}


注意事项 :

调用BufferedWriter的

write()

方法 , 会先将内容写入缓冲区 ,等


缓冲区满 / 调用close()方法

时, 才写入目标文件 所以 ,在最后必须在finally{}代码块中加入 close关闭对象 ,否则很有可能无法写入!!!



3.File类


(1)基本概念


绝对路径 : 从系统盘开始的路径,如

D:\file\a.txt


相对路径 : 相对于当前目录而言的 ,如

src\Hello.java



(2)常用方法


P260



版权声明:本文为qq_45596525原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。