new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
偶不能够很好的理解这种嵌套的语句的含义,请高手给详细指点一下,谢谢!
21 个解决方案
#1
实际上就相当于
FileInputStream fs = new new FileInputStream("TestEof,java");
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写你应该明白了吧
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
这样写只是为了节省代码,实际上跟上面3条语句是等效的
FileInputStream fs = new new FileInputStream("TestEof,java");
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写你应该明白了吧
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
这样写只是为了节省代码,实际上跟上面3条语句是等效的
#2
同意楼上的。
#3
分开看就好了。少了几个变量定义而已
#4
分開好看呀。我覺得是這樣 ̄1
#5
你最好看看api,搞清构造函数的参数,有个规律:针对接口编程(基类)。
记住这一点,然后掌握常用类的层次就结构就可以了。
记住这一点,然后掌握常用类的层次就结构就可以了。
#6
你看下关于内部类的资料就应该能有所了解
#7
匿名实例了````哈哈~~~`
#8
建议楼主顺便看一下《设计模式》中的Decorator Pattern
Java的IOStream是一个典型的Decorator Pattern
每一个Decorator都可以为对象增加新的能力。
Java的IOStream是一个典型的Decorator Pattern
每一个Decorator都可以为对象增加新的能力。
#9
关键是在以上的基础上,各个Stream的嵌套的具体的含义是什么,是类型转换?还是?
#10
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
和一下代码的意义相同
FileInputStream fs = new FileInputStream("TestEof.java");
BufferedInputStream bs = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bs);
FileInputStream, BufferedInputStream和DataInputStream都实现了InputStream接口
而BufferedInputStream和DataInputStream的参数都是InputStream
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
和一下代码的意义相同
FileInputStream fs = new FileInputStream("TestEof.java");
BufferedInputStream bs = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bs);
FileInputStream, BufferedInputStream和DataInputStream都实现了InputStream接口
而BufferedInputStream和DataInputStream的参数都是InputStream
#11
一楼的已经说的很详细了。
-----------------
-----------------
#12
FileInputStream fs = new new FileInputStream("TestEof,java");
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写好理解多了
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写好理解多了
#13
^_^,一楼已经说的很详细了,这个就是Decorator模式!
Decorator模式常用于如下的情形:如果用继承来解决各种需求的话,类的数量会多到不切实际的地步。Java的I/O类库需要提供很多功能的组合,于是decorator模式就有了用武之地。 但是decorator有个缺点,在提高编程的灵活性的同时(因为你能很容易地混合和匹配属性),也使代码变得更复杂了。Java的I/O类库之所以会这么怪,就是因为它"必须为一个I/O对象创建很多类",也就是为一个"核心"I/O类加上很多decorator。
Decorator模式常用于如下的情形:如果用继承来解决各种需求的话,类的数量会多到不切实际的地步。Java的I/O类库需要提供很多功能的组合,于是decorator模式就有了用武之地。 但是decorator有个缺点,在提高编程的灵活性的同时(因为你能很容易地混合和匹配属性),也使代码变得更复杂了。Java的I/O类库之所以会这么怪,就是因为它"必须为一个I/O对象创建很多类",也就是为一个"核心"I/O类加上很多decorator。
#14
哈哈哈,都说完了,帮你顶
#15
说明你还是没有理解过滤流的作用和用法,
#16
那么你怎么知道,其他的两个变量就是bf,fs啊!!!
#17
java io的感觉就是乱套(嵌)的
#18
都乱了套了。
#19
明白没有?我接分
:)
:)
#20
各位大哥,小弟菜鸟一名,以后有什么问题请大家帮帮忙教我哈子,我不甚感激啊!
我自己建了个QQ群:2869593,刚刚升为高级群!为大家以后交流提供一个地方,希望各位编程界的
哥哥姐姐们都来捧场,谢谢大家了!
我自己建了个QQ群:2869593,刚刚升为高级群!为大家以后交流提供一个地方,希望各位编程界的
哥哥姐姐们都来捧场,谢谢大家了!
#21
>关键是在以上的基础上,各个Stream的嵌套的具体的含义是什么,是类型转换?还是?
唉,看到这么多贴子无视“关键”,还是让本教练来教吧。年度最佳教练在此,先把耳朵洗干净。
JAVA 中用流处理 IO,主要的流有两类,一类是节点流,一类是过滤器流。可以认为节点流是底层的流,只提供了有限的功能。而在处理流时,你可能需要一些更高级的功能,这时怎么办呢?使用过滤器流。
过滤器流是建立在其他流之上的流,它们提供了丰富的功能。因此当你正在使用的流没有提供你需要使用的功能时,你就可以用它构造一些更高级的流,直到构造的流提供了你所需要的功能。
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
最初只有一个文件输入流(节点流),但要想使用 readInt、readDouble 方法,就必须用最初的流构造出 DataInputStream 来。:)
唉,看到这么多贴子无视“关键”,还是让本教练来教吧。年度最佳教练在此,先把耳朵洗干净。
JAVA 中用流处理 IO,主要的流有两类,一类是节点流,一类是过滤器流。可以认为节点流是底层的流,只提供了有限的功能。而在处理流时,你可能需要一些更高级的功能,这时怎么办呢?使用过滤器流。
过滤器流是建立在其他流之上的流,它们提供了丰富的功能。因此当你正在使用的流没有提供你需要使用的功能时,你就可以用它构造一些更高级的流,直到构造的流提供了你所需要的功能。
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
最初只有一个文件输入流(节点流),但要想使用 readInt、readDouble 方法,就必须用最初的流构造出 DataInputStream 来。:)
#1
实际上就相当于
FileInputStream fs = new new FileInputStream("TestEof,java");
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写你应该明白了吧
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
这样写只是为了节省代码,实际上跟上面3条语句是等效的
FileInputStream fs = new new FileInputStream("TestEof,java");
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写你应该明白了吧
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
这样写只是为了节省代码,实际上跟上面3条语句是等效的
#2
同意楼上的。
#3
分开看就好了。少了几个变量定义而已
#4
分開好看呀。我覺得是這樣 ̄1
#5
你最好看看api,搞清构造函数的参数,有个规律:针对接口编程(基类)。
记住这一点,然后掌握常用类的层次就结构就可以了。
记住这一点,然后掌握常用类的层次就结构就可以了。
#6
你看下关于内部类的资料就应该能有所了解
#7
匿名实例了````哈哈~~~`
#8
建议楼主顺便看一下《设计模式》中的Decorator Pattern
Java的IOStream是一个典型的Decorator Pattern
每一个Decorator都可以为对象增加新的能力。
Java的IOStream是一个典型的Decorator Pattern
每一个Decorator都可以为对象增加新的能力。
#9
关键是在以上的基础上,各个Stream的嵌套的具体的含义是什么,是类型转换?还是?
#10
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
和一下代码的意义相同
FileInputStream fs = new FileInputStream("TestEof.java");
BufferedInputStream bs = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bs);
FileInputStream, BufferedInputStream和DataInputStream都实现了InputStream接口
而BufferedInputStream和DataInputStream的参数都是InputStream
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
和一下代码的意义相同
FileInputStream fs = new FileInputStream("TestEof.java");
BufferedInputStream bs = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bs);
FileInputStream, BufferedInputStream和DataInputStream都实现了InputStream接口
而BufferedInputStream和DataInputStream的参数都是InputStream
#11
一楼的已经说的很详细了。
-----------------
-----------------
#12
FileInputStream fs = new new FileInputStream("TestEof,java");
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写好理解多了
BufferedInputStream bf = new BufferedInputStream(fs);
DataInputStream in = new DataInputStream(bf);
这样写好理解多了
#13
^_^,一楼已经说的很详细了,这个就是Decorator模式!
Decorator模式常用于如下的情形:如果用继承来解决各种需求的话,类的数量会多到不切实际的地步。Java的I/O类库需要提供很多功能的组合,于是decorator模式就有了用武之地。 但是decorator有个缺点,在提高编程的灵活性的同时(因为你能很容易地混合和匹配属性),也使代码变得更复杂了。Java的I/O类库之所以会这么怪,就是因为它"必须为一个I/O对象创建很多类",也就是为一个"核心"I/O类加上很多decorator。
Decorator模式常用于如下的情形:如果用继承来解决各种需求的话,类的数量会多到不切实际的地步。Java的I/O类库需要提供很多功能的组合,于是decorator模式就有了用武之地。 但是decorator有个缺点,在提高编程的灵活性的同时(因为你能很容易地混合和匹配属性),也使代码变得更复杂了。Java的I/O类库之所以会这么怪,就是因为它"必须为一个I/O对象创建很多类",也就是为一个"核心"I/O类加上很多decorator。
#14
哈哈哈,都说完了,帮你顶
#15
说明你还是没有理解过滤流的作用和用法,
#16
那么你怎么知道,其他的两个变量就是bf,fs啊!!!
#17
java io的感觉就是乱套(嵌)的
#18
都乱了套了。
#19
明白没有?我接分
:)
:)
#20
各位大哥,小弟菜鸟一名,以后有什么问题请大家帮帮忙教我哈子,我不甚感激啊!
我自己建了个QQ群:2869593,刚刚升为高级群!为大家以后交流提供一个地方,希望各位编程界的
哥哥姐姐们都来捧场,谢谢大家了!
我自己建了个QQ群:2869593,刚刚升为高级群!为大家以后交流提供一个地方,希望各位编程界的
哥哥姐姐们都来捧场,谢谢大家了!
#21
>关键是在以上的基础上,各个Stream的嵌套的具体的含义是什么,是类型转换?还是?
唉,看到这么多贴子无视“关键”,还是让本教练来教吧。年度最佳教练在此,先把耳朵洗干净。
JAVA 中用流处理 IO,主要的流有两类,一类是节点流,一类是过滤器流。可以认为节点流是底层的流,只提供了有限的功能。而在处理流时,你可能需要一些更高级的功能,这时怎么办呢?使用过滤器流。
过滤器流是建立在其他流之上的流,它们提供了丰富的功能。因此当你正在使用的流没有提供你需要使用的功能时,你就可以用它构造一些更高级的流,直到构造的流提供了你所需要的功能。
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
最初只有一个文件输入流(节点流),但要想使用 readInt、readDouble 方法,就必须用最初的流构造出 DataInputStream 来。:)
唉,看到这么多贴子无视“关键”,还是让本教练来教吧。年度最佳教练在此,先把耳朵洗干净。
JAVA 中用流处理 IO,主要的流有两类,一类是节点流,一类是过滤器流。可以认为节点流是底层的流,只提供了有限的功能。而在处理流时,你可能需要一些更高级的功能,这时怎么办呢?使用过滤器流。
过滤器流是建立在其他流之上的流,它们提供了丰富的功能。因此当你正在使用的流没有提供你需要使用的功能时,你就可以用它构造一些更高级的流,直到构造的流提供了你所需要的功能。
DataInputStream in=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("TestEof,java")));
最初只有一个文件输入流(节点流),但要想使用 readInt、readDouble 方法,就必须用最初的流构造出 DataInputStream 来。:)