InputStream和Reader】的更多相关文章

流的方向: .输入流:数据源到程序(InputStream,Reader读进来). .输出流:程序到目的地(OutPutStream,Writer写出来). 处理数据单元: 字节流:按照字节读取数据(InputStream,OutPutStream). 字符流:按照字符读取数据(Reader,Writer) 功能不同: 节点流:可以直接从数据源或目的地读写数据. 处理流:不直接连接到数据源或者目的地,是处理流的流,通过对其他流的处理提高程序的性能. 处理流:增强功能,提供性能,处理流在节点流之上…
一.InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据),最主要的区别如下: InputStream用来读取二进制数(字节流),而 Reader用来读取文本数据,即 Unicode字符.那么二进制数与文本数据有什么区别呢?从本质上来讲,所有读取的内容都是字节,要想把字节转换为文本,需要指定一个编码方法.而 Reader就可以把字节流进行编码从而转换为文本.当然,这个转换过程就涉及编码方式的问题,它默认采用系…
java.io下面有两个抽象类:InputStream和ReaderInputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别.即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组.弄清了两个超类的根本区别,再来看他们底下子类的使用,这里只对最常用的几个说明 InputStream    | __FileInputStre…
InputStream,OutputStream  前者为字节输入流,后者为字节输出流.Reader   Writer  前者为字符输入流,后者为字符输出流. 四个均为抽象类.fileInputStream 是InputStream 的实现类  fileReader 是Reader 的实现类 字节流读取单位为一个字节,字符流读取单位为一个字符  所以读取汉字的时候,如果用字节流就会导致读出来乱码.这是最常用的地方  其他基本用法差不多.. BufferedInputStream是套在某个其他的I…
1.String –> InputStream InputStrem is = new ByteArrayInputStream(str.getBytes());orByteArrayInputStream stream= new ByteArrayInputStream(str.getBytes()); 2.InputStream–>String inputStream input; StringBuffer out = new StringBuffer();     byte[] b =…
package java.io; // Representing an input stream of bytes. public abstract class InputStream implements Closeable // Abstract class for reading character streams. public abstract class Reader implements Readable, Closeable 桥 An InputStreamReader is a…
流的概念 程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件. 字节流与字符流 内容操作就四个类:OutputStream.InputStream.Writer.Reader 字节流 字节输出流OutputStream Clonseable表示可以关闭的操作,因为程序运行到最后肯定要关闭. Fluashable表示刷新,清空内存中的数据. import java.io.File ; import java.io.OutputStream ; import java.io.Fil…
InputStream:得到的是字节输入流,InputStream.read("filename")之后,得到字节流 Reader:读取的是字符流 InputStreamReader:从字节到字符的桥梁.InputStreamReader(InputStream.read("filename")); reader.read(InputStreamReader(InputStream in));便可从字节变为字符,打印显示了. java.io.Reader 和 jav…
 模拟BufferedInputStream,编写一个类 package toto.IO; import java.io.IOException; import java.io.InputStream; class MyBufferedInputStream{ private InputStream in; private byte[] buf = new byte[1024*4]; private int pos = 0,count = 0; MyBufferedInputStream(I…
InputStream:得到的是字节输入流,InputStream.read("filename")之后,得到字节流 Reader:读取的是字符流 InputStreamReader:从字节到字符的桥梁.InputStreamReader(InputStream.read("filename")); reader.read(InputStreamReader(InputStream in));便可从字节变为字符,打印显示了. java.io.Reader 和 jav…
一.概述 IO流用来处理设备之间的数据传输,上传文件和下载文件,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. 注:java把所有的传统的流类型都放到在java.io包下,用于实现输入和输出功能. 1.1.IO流分类 按照流的不同方向分为:输入流和输出流, 凡是含有in的,都可理解为输入流,…
[输入流中的字符流和字节流] [InputStream和Reader] InputStream和Reader是所有输入流的抽象基类,本身不能实例化,但是他们是所有输入流的模板. [ InputStream包含的方法 ] int read()       从输入流中读去单个字节,返回读取的字节数.(字节类型转换成int类型) int read( byte[] b )     从输入流中最多读取b.length个字节的数据,将数据存储在字节数组b中,返回读取的字节数. int read( byte[…
一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节,字符流操作的数据单元是16位的字符 [流的概念] —————————— ooooooooooooooooo —————————— (输入流模型,文件从头(左边)到尾(右边),) ↑,(记录指针) 每个‘’o“”看出一个"水滴",不管是字节流还是字符流,每个水滴是最小的输入/输出单位,对于…
输入和输出流:获取流对象从文件中获取InputStream in = Files.newInputStream(path);OutputStream out = Files.newOutputStream(path);从URL中获取URL url = new URL("http://www.baidu.com");InputStream in = url.openStream();从字节数组中获取byte[] bytes = ...;InputStream in = new ByteA…
字节流和字符流 顾名思义,字节流就是操作的是字节,字符流操作的就是字符.其中字节流又可以分为字节输入流(InputStream)和字节输出流(OutputStream).同样的字符流也可以分为字符输入流(Reader)和字符输出流(Writer).字节输入流的用法和字符输入流的用法类似,字节输出流的用法和字符输出流的用法非常类似,最明显的区别是字节流是对字节的操作,字符流是对字符的操作. ①InputStream和Reader 通过查看API文档可以发现InputStream和Reader的核心…
Java IO之Reader与Writer对象常用操作(包含了编码问题的处理) 涉及到文件(非文件夹)内容的操作,如果是纯文本的情况下,除了要用到File(见之前文章),另外就必须用到字符输入流或字符输出流. 字符输入流:该流处理时,数据由外部流向程序(内存),一般指代“读取字符”,更清晰点地说:从外部读取字符数据到内存中. 字符输出流:该流处理时,数据由程序(内存)流向外部,一般指代“写入字符”,更清晰点地说:将字符数据从内存写入到外部. 在Java中,可使用:Reader 与 Writer …
https://www.jianshu.com/p/e5bc7ea5f948 最近帮学姐写爬虫的时候遇到奇怪的问题,同样的程序在Mac上可以正常运行而在Windows上返回结果错误,最后经排查发现是Linux与Windows的默认编码方式不同,而自己的程序没有设置编码方式自动采用了默认的编码方式,所以导致错误发生.之后尝试了多种编码方式均告失败,最后发现是由于自己对输入输出流的认识不到位,没有正确使用的原因,故进行整理学习. 首先认识一下字节流与字符流.程序中的输入输出都是通过流的形式保存的,流…
原文链接 作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) Java IO的Reader和Writer除了基于字符之外,其他方面都与InputStream和OutputStream非常类似.他们被用于读写文本.InputStream和OutputStream是基于字节的,还记得吗? Reader Reader类是Java IO中所有Reader的基类.子类包括BufferedReader,PushbackReader,InputStreamRea…
I/O: I/O是什么? 在程序中,所有的数据都是以流的形式进行传输或者保存. 程序需要数据的时候,就要使用输入流读取数据. 程序需要保存数据的时候,就要使用输出流来完成. 程序的输入以及输出都是以流的方式进行的,流中保存的为字节文件. Java流: 流概念: 流与源数据和程序之间的关系: 源数据与程序时间是以流的形式传输的. 流与目标数据源和程序之间的关系: 程序与目标数据源之间以流的形式传输. 流的分类 按照流向划分:(相对程序而言) 输出流:OutputStream和Writer作为基类…
在node中,只要涉及到文件IO的场景一般都会涉及到一个类-Stream.Stream是对IO设备的抽象表示,其在JAVA中也有涉及,主要体现在四个类-InputStream.Reader.OutputStream.Writer,其中InputStream和OutputStream类针对字节数据进行读写:Reader和Writer针对字符数据读写.同时Java中有多种针对这四种类型的扩展类,如节点流.缓冲流和转换流等.比较而言,node中Stream类型也和Java中的类似,同样提供了支持字节和…
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentation 开始寻找感兴趣的内容.本博客不定期从 Oracle 官网搬砖.这一篇主要讲 Java 中的 I/O,官方文档在这里 Java I/O, NIO, and NIO.2. 前言 不知道大家看到这个标题会不会笑我,一个使用 Java 多年的老程序员居然一直没有记住 Java 中的 I/O.不过说实话…
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ☑ 这些字节序列的来源可以是:文件.网络连接.内存块等. ☑ 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ☑ 因为面向字节的流不便于处理以Unicode形式存储的信息(字符),所以从抽象类Re…
Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中. Asynchronous IO(异步IO):Java NIO可以让你异步的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情.当数据被写入到缓冲区时,线程可以继续处理它.从缓冲区写入通道也类似. S…
一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注…
输入流中可以通过缓冲区来加大读取的效率,sun公司感觉可以加快执行效率,他就为我们提供了一个类来操作缓存区. Buffer来头的类:所有缓冲流都是以Buffer开头的: 学习缓冲流的作用: BufferedInputStream:缓冲输入字节流,  目的:  提高读取文件的效率. 注意点: BufferedInputSteam  他是没有读写数据的功能, 内部实现:    里面维护了一个8字节的byte的数组 BufferedInputStream  使用步骤:  1.找到一个目标文件 2.建立…
在上篇博客中LZ阐述了java各个渠道转码的过程,阐述了java在运行过程中那些步骤在进行转码,在这些转码过程中如果一处出现问题就很有可能会产生乱码!下面LZ就讲述java在转码过程中是如何来进行编码和解码操作的. 编码&解码 在上篇博客中LZ阐述了三个渠道的编码转换过程,下面LZ将结束java在那些场合需要进行编码和解码操作,并详序中间的过程,进一步掌握java的编码和解码过程.在java中主要有四个场景需要进行编码解码操作: 1:I/O操作 2:内存 3:数据库 4:javaWeb 下面主要…
平时公司使用的ASP.NET MVC3来开发Web项目,其实在ASP.NET中已经原生的支持JSON.所以基本不需要引进Newtonsoft.Json.dll.下面看在MVC4中,后台生成JSON数据,前端使用Ajax调用.然后就是前端使用POST请求,发送JSON格式,后台程序来处理. 1.后台生成JSON格式数据,前端使用Ajax调用 后台代码: public JsonResult GetList() { ArrayList eventlist = new ArrayList(); ; i…
原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.本系列教程将有助于你学习和理解Java NIO.感谢并发编程网的翻译和投递. (关注ITeye官微,随时随地查看最新开发资讯.技术文章.) Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字…
背景 由于公司积极推动各业务产品服务化,得益于容器化技术的不断发展及普及,项目组的服务也更多地基于Mono,Jexus,Docker,Kubernetes等类库.容器.管理工具运行于Linux系统上.业务服务中基于WebApi方式的服务必不可少,本文主要记录在ms的Webapi2框架下,以mono+jexus作为编译.运行框架在linux环境下提供服务这个过程中存在的一些坑. mono版本的选择 截止写本文之前,Mono的最新版本是4.6.0.125,除此版本之外,主要使用.测试的版本还包括,M…
输入和输出 JAVA的流分为输入流和输出流两部分, 输入流:InputStream或者Reader:从文件中读到程序中: 输出流:OutputStream或者Writer:从程序中输出到文件中: Reader和Writer是字符流:只能针对字符文件进行读写操作. InputStream和OutputStream是二进制流:所有的文件都可以进行读写操作.也就是可以处理所有类型数据,如:图片,MP3,AVI视频文件,而字符流只能处理字符数据.只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用…