Bootstrap

BufferedReader、FileReader、FileInputStream

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;
}

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();
}
用Reader读取出来的是char数组或者String   ,使用InputStream读取出来的是byte数组。 FileReader是由java.io.InputStreamReade扩展来的,是针对文件读取的。
//在当前文件夹下建立一个文本文件(使用Windows 记事本程序)  
   //在文件中输入几行文本;  
   //使用文件输入流类FileInputStream和FileReader类,  
   //读取上边的文本文件中的内容,并输出到屏幕上。  
   import java.util.Arrays;  
   import java.io.*;  
   class Test  
   {  
       public static void main(String []args) throws Exception  
       {  
           File myFile=new File("temp.txt");  
           if(!myFile.exists())  
           {  
               System.out.println("can't fine that file"+myFile.getName());  
           }  
           //  
           //使用BufferedReader类读入  
           //  
        FileReader fis=new FileReader(myFile);  
        BufferedReader br=new BufferedReader(fis);  
        String line;  
        while((line=br.readLine())!=null)  
        {  
            System.out.println(line);  
        }  
        br.close();  
        fis.close();  
          
        //  
        //使用fileInputStream读入  
        FileInputStream fis=new FileInputStream(myFile);  
        byte[] b=new byte[(int)myFile.length()];  
        fis.read(b);  
        String str=new String(b);  
        System.out.print(str);  
        fis.close();  
           //  
           //使用FileReader  
           //  
           FileReader fr=new FileReader(myFile);  
           char[] contents=new char[(int)myFile.length()];  
           fr.read(contents,0,(int)myFile.length()-1);  
           String result=new String(contents);  
           System.out.println(result);  
           fr.close();  
       }  
   }; 
;