摘要:要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。为了达到最高效率,可要考虑在内包装。
这些都是一些小问题,但是有助于理解输入输出流。
InputStreamReader 中的一个 read()是每次只会从磁盘里面读取一个字节。它会非常频繁的访问磁盘。(想一想,每次只从磁盘读一个字节)
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。
为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:
BufferedReader in = new BufferedReader(new InputStreamReader import java.io.*; import java.io.DataInputStream; public class Main{ public static void main(String[] args) throws Exception { BufferedReader reader= new BufferedReader(new InputStreamReader(new FileInputStream(new File("text.txt")))); String line=null; while((line=reader.readLine())!=null){ String[] s=line.split("s+"); for ( String single:s ) { System.out.println(single); } } } }
(System.in));
s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格
Java的重定向
JAVA支持标准的输出输入重定向。
public class Main{ public static void main(String[] args) throws Exception { System.out.println("Hello World!"); } }
编译以后,直接使用java Main >test.txt进行输出重定向
使用输入重定向:
public class Main{ public static void main(String[] args) throws Exception { Scanner sc=new Scanner(System.in); while(sc.hasNextLine()) { System.out.println(sc.nextLine()); } } } java Main
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64677.html
摘要:开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章系列处理登录请求前后端分离一使用完美处理权限问题前后端分离二使用完美处理权限问题前后端分离三中密码加盐与中异常统一处理 开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章! Spring Boo...
摘要:是一个接口中的代理与中的委托基本类似。而中代理对象是作为被代理对象的一个属性。我们自己的处理逻辑还需要实现是加入了的自己的逻辑调用。成员变量可以看出,中的动态代理体现了中最重要的一点面向接口编程。这样生成的代理类也是一个对象。 调用静态常量不会引起初始化(调用初始化代码块)。但是要调用类的静态方法当然会初始化类了 class Test{ static{ ...
阅读 2112·2023-04-26 00:41
阅读 1142·2021-09-24 10:34
阅读 3572·2021-09-23 11:21
阅读 4030·2021-09-22 15:06
阅读 1556·2019-08-30 15:55
阅读 896·2019-08-30 15:54
阅读 1828·2019-08-30 15:48
阅读 549·2019-08-29 13:58