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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

25 个回复

倒序浏览
王宇晨
1.什么是输入流?什么是输出流?
输入流就是将数据从其他设备上读取到内存中。
输出流就是将数据从内存中写出到其他设备上。
2.字符流和字节流的区别?
字符流每次操作都是以字符为单位,字节流每次操作以字节为单位。
字符流只能操作文本文件不能操作图片,视频等非文本文件。而字节流可以操作图片,视频等非文本文件,但是操作文本文件时可能会出现乱码。
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7之前处理异常要判断对象为空时的情况格式为try...catch...finally
JDK7和JDK7之后try-with-resource 语句,该语句确保了每个资源在语句结束时关闭
格式:
try (创建流对象语句,如果多个,使用';'隔开) {
// 读写数据   
} catch (IOException e) {
e.printStackTrace();   
}

点评

发表于 2019-7-26 00:18

评分

参与人数 1黑马币 +1 收起 理由
五先生 + 1 沙发有没更多经验啊,晨哥

查看全部评分

回复 使用道具 举报
黄希

1.什么是输入流?什么是输出流?
        IO按照数据的流向分为输入流和输出流。
        输入流是将数据从其他设备读入到内存的流;
        输出流是将数据从内存写出到其他设备的流。
       
2.字符流和字节流的区别
        IO按照数据的类型分为字节流和字符流。
        字节流是以字节为单位,读写数据的流;
        字符流是以字符为单位,读写数据的流。
       
        字符流只能操作文本文件;
        字节流可以操作任意类型的文件,如图片、视频等。
       
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
        JDK7之前:
                使用try...catch...finally,关闭流的操作写在finally中,用try...catch包裹
               
        JDK7:
                使用try-with-resource语句,resource是指程序结束后,需要关闭的对象
                格式:
                        try (创建流对象的语句,如果多个使用分号;隔开) {
                                //读写数据   
                        } catch (IOException e) {
                                //处理异常
                        }
                       
        JDK9之后:
                改进try-with-resource语句,引入对象更加简洁
                格式:
                        //被final修饰的对象
                        final Resource resource1 = new Resource("资源1");
                        //普通对象
                        Resource resource2 = new Resource("资源2");
                        //直接引入
                        try (resource1; resource2) {
                                //使用对象
                        }

回复 使用道具 举报
谢精良
1.输入流是将数据从其他设备读入到内存的流
  输出流是将数据从内存写出到其他设备的流
2.字节流:以字节为单位,读写数据的流
  字符流:以字符为单位,读写数据的流、
3.JDK7之前格式为try...catch...finally
JDK7为try-with-resource 格式,不需要写close()确保了每个资源在语句结束时关闭
回复 使用道具 举报
1.什么是输入流?什么是输出流?
从外部(比如硬盘文件、键盘录入)获取数据输入到主存储(内存)的流为输入流
从内存输出到外部(硬盘上的文件,或者其他输出设备(比如打印到屏幕上)的流为输出流
2.字符流和字节流的区别?
字符流是只适合操作字符相关的数据(字符、字符串等等)
字节流则可以适用于任何数据的输入输出操作。
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7以前,针对IO流的异常处理,只能使用传统的try.....catch....finally......进行捕获处理
并且要在finally中手动释放掉已经打开的资源(甚至在关闭流的语句由于会抛出异常还导致了finally里嵌套try...catch...来进行捕获的情况)。
JDK7后引入了try-with-resources语句结构,以
try(创建流的语句){....}catch(异常){.....}的结构即可捕获和处理多数的IO相关异常,并且还附带有自动释放资源(关闭流)的效果,省去了自己去写close语句
回复 使用道具 举报
1.输入流就是将数据从其他硬盘读取到内存中。
   输出流就是将数据从内存中写出到硬盘。
2.字节流就是以字节为单位,读写数据的流;字符流就是以字符为单位,读写数据的流
   字符流只能操作字符相关的文件;字节流可以操作任意类型的文件
3.JDK7之前,是用try...catch...finally...进行处理;
JDK7及JDK7以后是用try(流){...}catch(异常){...}进行处理,省略了close()释放语句
回复 使用道具 举报
郑雪平

今天讲解了什么是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用try-with-resource 语句,确保每个资源在语句结束时候关闭。
JDK7以后,JDK9,必须用finally修饰对象。

点评

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

评分

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

查看全部评分

回复 使用道具 举报
彭东亮
1.什么是输入流?什么是输出流?
把数据从其他设备上读取到内存中的流称为输入流;
把数据从内存中写到其他设备上的流称为输出流。
2.字符流和字节流的区别?
字符流是以字符为单位,字节流是以字节为单位。
3.JDK7之前,JDK7和JDK7之后对IO流异常的处理有什么变化?
JDK7前对对于IO流异常我们时一直把异常抛出,并且需要通过close方法将资源进行关闭,JDK7之后try...catch...finally 代码
块,处理异常部分,并通过该语句确保了每个资源在语句结束时的关闭。
回复 使用道具 举报
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.什么是输入流?什么是输出流?
以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之前处理IO异常只能用传统的try...catch...finally进行异常的捕获。JDK7处理IO异常可以把创建流对象可以写到try()小括号里面多个用分号隔开。JDK7之后try()小括号里面放着IO流对象在main方法定义的变量,其还是需要把异常抛给main方法。
回复 使用道具 举报
1.什么是输入流?什么是输出流?把数据在内存与设备间的传输比作数据的流动,以内存为基准的话,数据流入内存就是输入流,数据流出内存就是输出流


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

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

JDK1.7之前,IO流的异常捕获之后需要在finally里面释放资源
1.7时,使用try -  with  -  resource语句处理,虚拟机会自动帮我们释放资源
1.7之后IO流对象需要用finally修饰,但还是需要抛出异常
回复 使用道具 举报
贾宗虎

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流异常的处理有什么变化?
JDK7之后采用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{}catch()finally{}
jdk7:try-with-resource 语句,该语句确保了每个资源在语句结束时关闭。
jdk9:对try-with-resource 的改进,对于引入对象的方式,支持的更加简洁。
回复 使用道具 举报
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  finally里面的都是会执行的,
JDK7为try-with-resource 格式,不需要写close(),自带close功能
回复 使用道具 举报

王博

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


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

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

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


回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马