资讯专栏INFORMATION COLUMN

你需要注意的java小细节(二)

firim / 904人阅读

摘要:要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。为了达到最高效率,可要考虑在内包装。

这些都是一些小问题,但是有助于理解输入输出流。
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...

    huayeluoliuhen 评论0 收藏0
  • 需要注意Java细节(一)

    摘要:是一个接口中的代理与中的委托基本类似。而中代理对象是作为被代理对象的一个属性。我们自己的处理逻辑还需要实现是加入了的自己的逻辑调用。成员变量可以看出,中的动态代理体现了中最重要的一点面向接口编程。这样生成的代理类也是一个对象。 调用静态常量不会引起初始化(调用初始化代码块)。但是要调用类的静态方法当然会初始化类了 class Test{ static{ ...

    Sunxb 评论0 收藏0
  • 后端技术精选

    摘要:服务教程在它提出十多年后的今天,已经成为最重要的应用技术之一。全方位提升网站打开速度前端后端新的技术如何在内完整打开网站会直接影响用户的满意度及留存率,在前端后端数据缓存加速等等方面都有诸多可以提升。 HTTPS 原理剖析与项目场景 最近手头有两个项目,XX 导航和 XX 产业平台,都需要使用 HTTPS 协议,因此,这次对 HTTPS 协议做一次整理与分享。 使用缓存应该注意哪些问题...

    GitCafe 评论0 收藏0

发表评论

0条评论

firim

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<