缓冲流对象、缓冲流对象写

缓冲流对象

这里我们说一下常用的字符缓冲流对象,字节缓冲流对象不常用。

缓冲流对象写BUfferrdReader
缓冲流对象读Bufferred Writer

缓冲流对象写

如果想要使用想使用缓冲流来进行写的操作就必须先使用字符流的写操作。下面我们来看一下如何使用代码来使用缓冲流对象进行写。

//创建字符流读取对象 - 需要文件路径
//不添加true,则覆盖原有内容。添加true,则在文件后添加
Writer writer = new FileWriter("F:/writer.txt");//这里可以看做是  File file = new File("F:/writer.txt"); Writer writer = new FileWriter(file)
//这里我们就要使用缓冲流对象进行写的操作,需要先生产写的缓冲流对象
BufferedWriter bw = new BufferedWriter(writer);//创建完就可以直接开始写了
		bw.write("hahaha");//添加写的内容
		bw.write("asdas");                                     
		bw.close();//关闭流
		writer.close();//关闭流
		//这里我们要注意当调用多个流进行操作时一定要倒着关闭流
	}


缓冲流对象的读取

缓冲流对象的读跟缓冲流对象的写操作是一样的。

		//创建字符流读取对象 - 需要文件路径
		Reader reader = new FileReader("F:/writer.txt");
		//创建字符流缓冲对象-需要一个字符流读对象
		BufferedReader  br = new BufferedReader(reader);
		//定义一个字符串来接受读取到的内容
		String result = null;
		//这里遍历读取到的内容
		while((result = br.readLine())!= null) {//readLine()按行读取
			System.out.println(result);
		}
		br.close();//关闭流
		reader.close();//关闭流
	}

字符串缓冲池

StringBuilderStringbuffer

StringBuilder(线程不安全) StringBuffer(线程安全)
SringBulieder和Stringbuffer的区别:

两个缓冲池只在是否安全上有区别,其他都一样
这里我们来说一下之前出过的面试题;

面试题:String StringBuilDer SringBuffer的区别
String修饰的是常量,StringBuileDer和StringBuffer修饰的是变量
StringBuilDer是线程不安全,StringBuffer线程安全
StringBuilDer效率比StringBuffer高
*StringBuffer安全性比StringBuilDer高
使用缓冲池读取我们还要注意:
使用字符数组作为缓冲池进行读取时,会出现显示多余或不完整的情况
StringBuilder是可变的字符序列,变化规则是当值超出了容器的默认给的大小,容器会自动扩容,每次扩原有大小的一半。

	public static void readMethod2() throws IOException {
		Reader reader = new FileReader("F:/writer.txt");
		//创建字符串缓池流对象
		StringBuilder sb = new StringBuilder();
		char [] cbuf = new char[3];//这里是字符缓冲池的一个问题这里就需要使用字符流缓冲对象
		while (reader.read(cbuf)!=-1) {
			sb.append(cbuf);
			
		}
		System.out.println(sb);
		reader.close();
	}
}

字符流缓冲对象

/**
	 * 字符流缓冲对象读取
	 * @throws IOException 
	 */
	public static void bufferedReaderMethod() throws IOException {
		//创建字符流读取对象 - 需要文件路径
		Reader reader = new FileReader("F:/writer.txt");
		//创建字符流缓冲对象-需要一个字符流读对象
		BufferedReader  br = new BufferedReader(reader);
		String result = null;
		//br.readLine();按行读取
		while((result = br.readLine())!= null) {//br.readLine();需要返回一个字符串类型,我们创建一个空的字符串来接收读取到的数据
			System.out.println(result);
		}
		br.close();//关闭流
		reader.close();
	}
}

字符流缓冲对象写

	/**
	 * 缓冲流写
	 * @throws IOException 
	 */
	public static void bufferedWriterMethod() throws IOException {
		//不添加true,则覆盖原有内容。添加true,则在文件后添加
		Writer writer = new FileWriter("F:/bufferedWriter.txt",true);
		BufferedWriter bw = new BufferedWriter(writer); 
		bw.write("hahaha");
		bw.write("asdas");                                     
		bw.close();
		writer.close();
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值