【问题标题】:what is the diff Scanner and BufferedReader什么是 diff Scanner 和 BufferedReader
【发布时间】:2017-05-29 07:03:09
【问题描述】:

SystemBufferedReader 读取文件有什么区别?

	File fileName = new File("E:/go.txt");
		Scanner obj = new Scanner(fileName);
		int largest = 0;

		while (obj.hasNextInt()) {
			int input = obj.nextInt();
			if (largest < input) {

				largest = input;
			}
			
		}
		System.out.println("largest no. is:" + largest);

【问题讨论】:

  • 如果你想“解析”一个文件,请使用 Scanner,它提供了很多功能来选择性地读取输入。使用 BufferedReader + FileReader 读取文件的所有内容。

标签: java io bufferedreader


【解决方案1】:

虽然两者都用于标准输入,但Scanner 用于从流的内容中解析标记,而BufferedReader 只是读取流并且不进行任何特殊解析。

  • BufferedReadersynchronizedScanner 不是,因此由您决定。如果您使用多个线程,请使用 BufferedReader
  • 与 BufferedReader(8KB 字节缓冲区)相比,Scanner 有一个小缓冲区(1KB 字符缓冲区),但绰绰有余。
  • 与扫描仪相比,BufferedReader 有点快。
  • 扫描仪隐藏IOExceptionBufferedReader 立即抛出它

【讨论】:

  • bufferedReader 中做了什么类型的同步?
  • BufferedReader 是同步的,因此可以从多个线程安全地完成 BufferedReader 上的读取操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 2013-07-12
  • 2014-05-21
相关资源
最近更新 更多