输入流和输出流:
流的输入输出都是以应用程序为基准的,这一点一定要注意。
输入流,模样很好记,一般情况下,输入流是带有Input字样或Reader字样的,如FileInputStream和BufferedReader等等,这些都是输入流。
输出流,一般情况下,是带有Output字样或Writer的,如FileOutputStream和FileWriter等等,详细请查查API文档,看看是不是这样。
字节流和字符流
字节流,一般是带有Stream字样的,如InputStream,FileInputStream等等,这组流处理的最小单位之字节。
字符流,一般是带有Reader或Writer字样的,如InputStreamReader等等,它们处理的最小单位是字符。
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的 但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化 这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联 在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的
下面是几篇博文,介绍的很好:
浏览器 采用了一种编码方式,即 "multipart/form-data" 的编码方式,采用这种方式,浏览器可以很容易将表单内的数据和文件放在一起发送.这 种编码方式先定义好一个不可能在数据中出现的字符串作为 分界符,然后用它将各个数据段分开,而对于每个数据段都对应着 HTML 页面表单 中的一个 Input 区,包括一个 content-disposition 属性,说明了这个数据段的一些信息,如果这个数据段的内容是一个文件,还会有 Content-Type 属性,然后就是数据本身. 我们可以用request.getInputStream()或request.getReader()得到 提交的数据.
用request.getInputStream()或request.getReader()得到 提交的数据:
http://www.cnblogs.com/steve-cnblogs/articles/5420198.html
http://blog.csdn.net/zxman660/article/details/7875799
http://blog.csdn.net/xiebaochun/article/details/29559881
http://www.51testing.com/html/85/258885-811659.html