A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天我们学习了字符流和字节流,请根据自己的理解回答下面问题:
1.什么是输入流?什么是输出流?
2.字符流和字节流的区别?
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

25 个回复

正序浏览
1.什么是输入流?什么是输出流?

输入流就是向内存输入数据。输出流就是内存输出数据。

2.字符流和字节流的区别?

字符流的底层是字节流,字符流可以读出或者写入一个字符,而字节只能读出或者写入字节。

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

JDK7之前一般都是利用finally来完成流的关闭操作,而JDK7之后,有了try-with-resource 在try小括号中创建的流在利用完后会自动释放资源。
回复 使用道具 举报
刘慧梅
1.什么是输入流?什么是输出流?
将数据读入内存输入流
将数据写出内存是输出流
2.字符流和字节流的区别?
字符流以字符为单位,读写数据。
字节流以字节为单位,读写数据。
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7之前用try..catch..finally处理IO流异常
JDK7用try..with..resource处理IO流异常,不需要手动写close关闭流,会自动释放关闭
回复 使用道具 举报
林焕

1.输入流:把数据从其他设备上读取到内存中的流;
  输出流:把数据从内存中写出到其他设备上的流;

2.字符流跟字节流的最大区别在于:字符流在写出和读入的过程中,设备和内存之间存在缓冲区;

3.JDK7之前,是把异常抛出;
  JDK7对异常进行了捕获处理;
  JDK9对JDK7的优化基础上.使代码更加简洁;
回复 使用道具 举报
杨银万
1.什么是输入流?什么是输出流?输入流就是将硬盘中的文件信息读取到内存中
输出流就是将内存中的信息输出到硬盘中保存
2.字符流和字节流的区别?
字符流在读写信息时是以字符为单位进行读写
字节流在读写信息时是以字节为单位进行读写
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

JDK7之前格式为try...catch...finally  finally里面的都是会执行的,
JDK7为try-with-resource 格式,不需要写close(),自带close功能
回复 使用道具 举报

王博

1.什么是输入流?什么是输出流?
输入流:将硬盘设备上的内容读取到内存中
输出流:将内存中的内容写出到硬盘设备中


2.字符流和字节流的区别?
字符流操作以字符为单位
字节流以字节为单位

一般字符流用于操作文本文件;字节流操作非文本文件

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7之前,使用传统的try.....catch....finally......要在finally中去释资源
JDK7后引入了try-with-resources,不用我们释放流,系统会自动去释放


回复 使用道具 举报
1.什么是输入流?什么是输出流?
 输出流是将数据从内存写出到其他设备 写出
输入流是将数据从其他设备读入到内存 读入
2.字符流和字节流的区别?
字符流每次操作都是以字符为单位,字节流每次操作以字节为单位。
字符流只能操作文本文件不能操作图片,视频等非文本文件
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7之前格式为try...catch...finally  finally里面的都是会执行的,
JDK7为try-with-resource 格式,不需要写close(),自带close功能
回复 使用道具 举报
1.什么是输入流?什么是输出流?
写入到内存中的是输入流 read  相反是输出流 write
2.字符流和字节流的区别?
一个字符可能占多个字节
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
try catch finaly  try resours with
回复 使用道具 举报
1.什么是输入流?什么是输出流?
输入流表示数据从硬盘或者其他设备流向内存,输出流表示数据从内容流向硬盘或者其他设备.
2.字符流和字节流的区别?
字节流只能传输字节数据,字符流可以传输字符数据.
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
jdk7之前:使用try{}catch()finally{}
jdk7:try-with-resource 语句,该语句确保了每个资源在语句结束时关闭。
jdk9:对try-with-resource 的改进,对于引入对象的方式,支持的更加简洁。
回复 使用道具 举报
吴香斌

1.什么是输入流?什么是输出流?

输入与输出指的是内存与硬盘之间的关系,以内存的角度出发:
输入流:是指数据由硬盘传输至内存中,对应常规叫法是"读入".
输出流:是指
数据由内存传输至硬盘中,对应常规叫法是"写出".

2.字符流和字节流的区别?
1) 传输的基本单位不同: 字符流的基本单位是一个字符, 字节流的基本单位是一个字节
2) 传输的内容不同:图片,音频,视频等文件字符流传输不了,字节流可以传递所有数据,因为所有数据的存储皆是字节.

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
1) JDK7之前,是将流对象的定义放在try语句之外,然后使用finally关键字来添加关闭流语句,来进行流的关闭,异常处理的代码量较大
2) JDK7版本,是在try后面增加一个小括号,将流对象的创建放在小括号中,这种写法,不需要再进行流的关闭,简化了写法.
3)JDK7之后,相对于JKD7,对于try小括号内的对象引入,有了变动,可以在try语句之外进行对象创建,然后将对象引用放到try小括号中,这个方法是使try里面的代码更好排序一些.




回复 使用道具 举报
1.什么是输入流?什么是输出流?
输入流就是读取数据,输出流就是写入数据
2.字符流和字节流的区别?
字符流是专门用于读取写入字符,避免使用的编码表不同产生错误,字节流使用范围更广
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7之后采用try with resource 语句结束后自己释放资源,
回复 使用道具 举报
贾宗虎

1.什么是输入流?什么是输出流?

输入流: 是将数据从数据源,读取到内存中产生的数据流向
输出流: 是将数据从内存中,写出到目标处产生的数据流向

2.字符流和字节流的区别?

区别:字符流是数据流的数据类型为字符类型,字节流的数据流类型为字节.
        字节流可以在任意情况下使用,因为计算机的底层数据都是以字节为存储单位的
        字符流大多用在文本的传输情况下

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

JDK 7之前是: try..catch..finally来处理
JDK 7是:     try..with..resourse来处理
格式: try(引入对象)
{具体的执行语句}
catch(IOExcep e)
{e.printStackTrace();}
多个对象之间用分号;隔开
JDK 7之后是: 在7的基础上,把定义对象的步骤简化.把引入对象的步骤拿出来,再try中可以直接用对象名.用分号;隔开.但还是需要抛出一个异常,所以其实并没有太多简化代码量
回复 使用道具 举报
1.什么是输入流?什么是输出流?把数据在内存与设备间的传输比作数据的流动,以内存为基准的话,数据流入内存就是输入流,数据流出内存就是输出流


2.字符流和字节流的区别?
一个是以字符为单位对数据进行操作,一个以字节为单位对数据进行操作
字符流是专门为了解决文本数据的编码问题而诞生的,相对于字节流只能对文本中的字符数据进行操作
字节流则可以对文本,视频音频,图片等各种数据进行拷贝传输。

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

JDK1.7之前,IO流的异常捕获之后需要在finally里面释放资源
1.7时,使用try -  with  -  resource语句处理,虚拟机会自动帮我们释放资源
1.7之后IO流对象需要用finally修饰,但还是需要抛出异常
回复 使用道具 举报
1.输入流:把数据从其他设备上读取到内存中的流。输出流:把数据从内存中写到其他设备上的流。

2.字节流:以字节为单位的,当程序处理任意类型的文件如(图片 音乐 电影)等保存到磁盘数据一定都是字节。字符流:以字符为单位,当程序处理中文的时候,字符流是最方便的。

3.JDK7之前处理IO异常只能用传统的try...catch...finally进行异常的捕获。JDK7处理IO异常可以把创建流对象可以写到try()小括号里面多个用分号隔开。JDK7之后try()小括号里面放着IO流对象在main方法定义的变量,其还是需要把异常抛给main方法。
回复 使用道具 举报
唐杰

1.什么是输入流?什么是输出流?
以Java为中心来识别的话,输入input就是将文件读到java中,输出output就是将文件写出到内存中.

2.字符流和字节流的区别?
字节流是指所有数据都是以字节的形式来输出输入.计算机中所有的文件都是字节.
字符流是在读/写非ASCII码表的数据时,因为字节一次只能读取一个,可能会导致读取不完整而衍生出的字符流,所有数据以字符进行操作,解决乱码问题.

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

JDK 7之前,是用try...catch...finally,将关闭流操作写在finally中.
JDK 7是用try-with-resource,把流对象创建在try()的小括号中,会自动释放资源/关闭流.
JDK 7之后是在创建流对象的时候,要对其中一个进行final修饰,再写到try()的小括号里,但是一样要抛出异常.
回复 使用道具 举报
1.什么是输入流?什么是输出流?

输入流:是把数据从其他设备上读入到内存中
输出流:是把数据从内存中写出到其他设备中

2.字符流和字节流的区别?

字节流:是以字节为单位对数据的读入和写出
字符流:是以字符为单位对数据的读入和写出
字符流只能对文本读写,不能对图片进行读写,字节流可以操作图片等,
但是字节流需要进行编码处理,要不文本内容可能会出现乱码(比如中文);
字符流读写时可以传入字符串,字节流需要对字符串转换为字符数组再
操作

3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?

JDK7之前用 try...catch...finally 代码块,处理异常部分;
JDK7 try-with-resource 语句
try (创建流对象语句,如果多个,使用';'隔开) {
// 读写数据
} catch (IOException e) {
e.printStackTrace();
}
JDK7之后// 被final修饰的对象
final Resource resource1 = new Resource("resource1");
// 普通对象
Resource resource2 = new Resource("resource2");
// 引入方式:直接引入
try (resource1; resource2) {
// 使用对象
}
回复 使用道具 举报
彭东亮
1.什么是输入流?什么是输出流?
把数据从其他设备上读取到内存中的流称为输入流;
把数据从内存中写到其他设备上的流称为输出流。
2.字符流和字节流的区别?
字符流是以字符为单位,字节流是以字节为单位。
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7前对对于IO流异常我们时一直把异常抛出,并且需要通过close方法将资源进行关闭,JDK7之后try...catch...finally 代码
块,处理异常部分,并通过该语句确保了每个资源在语句结束时的关闭。
回复 使用道具 举报
吴佳更
1.以内存为基准,流向内存就是输入流,流出内存就是输出流。
2.字节流是以字节为单位操作,能操作任意类型的文件。
字符流是以字符为单位操作,只能操作文本文件。
3.JDK7之前可以把异常抛出,或者使用try,catch,finally的方法处理异常部分。
JDK7用try-with-resource 语句,确保每个资源在语句结束时候关闭。
JDK7以后,JDK9,必须用finally修饰对象。

点评

试试能不能给自己点评  发表于 2018-7-3 08:52

评分

参与人数 2黑马币 +2 收起 理由
蔡超凡 + 1 山寨
五先生 + 1 山寨

查看全部评分

回复 使用道具 举报
郑雪平

今天讲解了什么是IO流,就是把数据的传输或者是数据在流动。IO流根据数据的流动方向可以分为输入流和输出流;根据传输数据的类型可以分为字符流和字节流。字节输出流OutputStream的基本共性方法有5中:1.close()方法;2.  flush()    3.  write(byte[] b)    4.  write(byte[] b, int off, int len)    5. write(int b) 。  FileOutputStream类的构造方法是: FileOutputStream(File file) ; FileOutputStream(String name) 。字节输入流InputStream 的共性功能方法有: close() ;int read() ; read(byte[] b) 。FileInputStream 类的构造方法:FileInputStream(File file) ;FileInputStream(String name) 。当我们使用字节流读取文本文件时,可能会遇到一个小问题,就是遇到中文字符时,可能不会显示完整的字符,那是因为 一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件,这个就是字符流。字符输入流的共性功能方法: close() ; read() ; read(char[] cbuf) 。FileReader 类的构造方法:FileReader(File file) ;FileReader(String fileName) 。字符输出流Writer 的共性方法: close()  flush()  write(int c)  dwrite(char[] cbuf)   write(char[] b, int off, int len)  write(String str)     FileWriter 类构造方法:FileWriter(File file)  FileWriter(String fileName) ;之前学习过异常的处理,我们一直把异常抛出,但是在实际开发中并不能这样处理,这里建议使用 try...catch...finally 代码 块,处理异常部分。
回复 使用道具 举报
1.输入流就是将数据从其他硬盘读取到内存中。
   输出流就是将数据从内存中写出到硬盘。
2.字节流就是以字节为单位,读写数据的流;字符流就是以字符为单位,读写数据的流
   字符流只能操作字符相关的文件;字节流可以操作任意类型的文件
3.JDK7之前,是用try...catch...finally...进行处理;
JDK7及JDK7以后是用try(流){...}catch(异常){...}进行处理,省略了close()释放语句
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马