• scanner, BufferedReader, InputStreamReader 区别及特殊字符的输入


    1. Scanner是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器!也就是控制台应用程序最为常用的文本输入方式!Scanner取得输入数据的依据是空格符:如按下空格键,Tab键或者Enter键,Scanner就会返回下一个输入。所以说Scanner不能输入空格,如果你希望取得含有空格的字符串BufferedReader可以做到。

    2. BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

    3. BufferedReader 类

    BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。


    一般用法:
        
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));
      String data = null;
      while((data = br.readLine())!=null)
      {
       System.out.println(data); 
      }

    示例如下:

    public static String getHtml(String url) throws IOException {
     
    String source ="";
    String line ="";
    URL _url = new URL(url);
    InputStream inStream = _url.openStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inStream,"UTF-8"));
    while((line = bufferedReader.readLine())!=null) {
    source += line;
    }
    return source;
    }

    4. InputStreamReader 类

    是字节流通向字符流的桥梁,封裝了InputStream在里头, 它以较高级的方式,一次读取一个一个字符以文本格式输入 / 输出,可以指定编码格式;

    一般用法:

    InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"));
       while((ch = isr.read())!=-1)
       {
        System.out.print((char)ch); 
       }

    示例如下:

    public static String getHtmlSource( String  url) throws MalformedURLException, IOException {
     
    URLConnection uc = new URL(url).openConnection();
    uc.setConnectTimeout(10000);
    uc.setDoOutput(true);
    InputStream in = new BufferedInputStream(uc.getInputStream());
    InputStreamReader rd = new InputStreamReader(in,"gb2312");
    int c = 0;
    StringBuffer temp = new StringBuffer();
    while((c = rd.read())!= -1){
           temp.append((char)c);
    }
    in.close();
    return temp.toString();
    }
  • 相关阅读:
    gan研究思路
    官方文档的学习
    构建Pytorch虚拟环境
    桌面显示【我的电脑】
    【VUE】计数器模块
    【品优购】字体图标定位的做法
    029垃圾分代回收机制
    03特殊for语句
    28包 package
    jdk特性
  • 原文地址:https://www.cnblogs.com/w-wfy/p/6395319.html
Copyright © 2020-2023  润新知