输入,输出流(中)

文件字符输入,输出流

与FileInputStream字节流对应着的FileReader字符流

与FIieInputStream字节流对应着的FileWriter字符流

字符流常用的构造方法分别是:

  1. FileReader(String filename)
  2. FileWriter(String filename)
  3. FileWriter(String filename,boolean append)

字符输入流和输出流的read和write方法使用字符数组读写数据,即以字符为基本单位处理数据。

具体测试代码如下:

try {
			FileReader fr=new FileReader(new File("C:\\Users\\lenovo-pc\\Desktop","新测试1.txt"));
			FileWriter fw=new FileWriter(new File("C:\\Users\\lenovo-pc\\Desktop","新测试.txt"));
			char ch[]=new char[100];
			int n=0;
			while((n=fr.read(ch))!=-1){
				System.out.println(new String(ch, 0, n));
				fw.write(ch, 0, n);
                fw.flush();
				System.out.println("写入成功");
			}
        
			fr.close();
			fw.close();
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

注意:对于Write流,write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容被自动写入到目的地,如果关闭流,缓冲区的内容会立刻被写入到目的地。流调用flush()方法可以立刻冲洗当前缓冲区,即将当前缓冲区的内容写入到目的地。

缓冲流:

BufferedReader和bufferedWriter类创建的对象称为缓冲输入,输出流,二者增强了读写文件的能力。

缓冲流的源和目的地必须是字符输入流,和字符输出流。

缓冲流比字符流有更强的读写能力,它可以按行读写文件

构造方法分别为:

  1. BufferedReader(Reader in);
  2. BufferedWriter(Reader out);

BufferedWriter有一个独特的向文件写入一个换行符的方法

newLine();

注意:关闭输出流时要首先关闭缓冲输出流,然后关闭缓冲输出流指向的流,即先关闭上层流再关闭底层流。再编写代码的时候只需要关闭上层流,那么上层流的底层流将自动关闭。

具体测试代码:

try {
			BufferedReader br=new BufferedReader(
					new FileReader(
							new File("C:\\Users\\lenovo-pc\\Desktop","新测试.txt")));
			BufferedWriter bw=new BufferedWriter(
					new FileWriter(
							new File("C:\\Users\\lenovo-pc\\Desktop","新测试1.txt")));
			String str="";
			StringBuffer sb=new StringBuffer();
			int i=0;
			while((str=br.readLine())!=null){
				System.out.println(str);
				sb.append(str);
			}
			System.out.println(sb);
			bw.write(new String(sb));
			bw.flush();
			System.out.println("ok");
			bw.close();
			br.close();
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

喜欢的记得点个关注哟!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值