本文主要是介绍java 比Scanner 更高效的输入输出 BufferedWriter和`OutputStreamWriter,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
当我们在 Java 中需要进行字符输出时,可以使用 BufferedWriter
和 OutputStreamWriter
的组合来实现。下面提供更多相关信息:
-
BufferedWriter
:-
BufferedWriter
提供了缓冲区的功能,将字符数据写入缓冲区,然后批量写入底层输出流,减少了频繁的写入操作,提高了性能。 -
它提供了一些便捷的写入方法,如
write(char[] cbuf)
、write(String str)
和newLine()
等,可以方便地进行字符数据的写入和换行操作。 -
使用完毕后,应及时调用
flush()
方法将缓冲区的数据刷新到底层输出流,确保数据被完全写入。
-
-
OutputStreamWriter
:-
OutputStreamWriter
是一个字符流与字节流之间的转换器,将字节流转换为字符流。 -
它可以指定字符编码,将字节流按照指定编码转换为字符流,以便正确地处理不同字符编码的数据。
-
在构造方法中,可以传入一个字节输出流对象,如
System.out
(标准输出流)或FileOutputStream
(文件输出流),将其转换为字符输出流。 -
若不指定字符编码,默认使用平台的默认字符编码。
-
通过将 OutputStreamWriter
对象作为参数传递给 BufferedWriter
的构造方法,我们可以实现字符数据的输出,并通过缓冲区提高写入效率。
这种组合的优点是可以方便地进行字符输出,并通过缓冲区减少底层资源的频繁交互,提高性能。同时,由于 BufferedWriter
继承自 Writer
类,还可以使用 Writer
的其他方法来进行字符输出操作。
需要注意的是,在使用完毕后,应该及时关闭和释放相关资源。对于 BufferedWriter
和 OutputStreamWriter
,可以调用 close()
方法来关闭字符流,它们会自动关闭底层的输出流。
总结:BufferedWriter
和 OutputStreamWriter
的组合提供了一种方便高效的方式来进行字符输出,允许我们写入字符数据并通过缓冲区提高性能。
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.Scanner;public class H {public static void main(String[] args) throws Exception{Scanner sc = new Scanner(System.in);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int k = sc.nextInt();while(k-->0){int n = sc.nextInt();if(n==3){bw.write("Fak\n");}else {bw.write("Bingbong\n");}}bw.flush();//将缓冲区的数据刷新到底层输出流,确保数据被完全写入bw.close();//关闭字符流释放相关资源}
}
这篇关于java 比Scanner 更高效的输入输出 BufferedWriter和`OutputStreamWriter的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!