浏览器 采用了一种编码方式,即 "multipart/form-data" 的编码方式,采用这种方式,浏览器可以很容易将表单内的数据和文件放在一起发送.这 种编码方式先定义好一个不可能在数据中出现的字符串作为 分界符,然后用它将各个数据段分开,而对于每个数据段都对应着 HTML 页面表单 中的一个 Input 区,包括一个 content-disposition 属性,说明了这个数据段的一些信息,如果这个数据段的内容是一个文件,还会有 Content-Type 属性,然后就是数据本身. 我们可以用request.getInputStream()或request.getReader()得到 提交的数据.

 

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();


}