`
bleet
  • 浏览: 58985 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你猜猜这段代码的结果

阅读更多
闲的无聊,随手写个小代码如下:

	public static void main(String[] args) {
			InputStream stream = System.in;
			try {
				FileOutputStream outStream = new FileOutputStream("E:/a.txt");
			
				byte [] data = new byte[2];
				int pos = 0;
				while (pos != -1) {
					pos = stream.read(data); 
					outStream.write(data);
					int size = stream.available();
					System.out.println("currut pos------------"+pos);
					System.out.println("available size------------"+size);
				}
				outStream.flush();
				outStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				System.out.println("========closed==============");
				stream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
	}


问题一:输入12345会输出什么结果?
问题二:E:/a.txt中会有输入的12345保存吗?
问题三:"========closed=============="这句话会打印出来吗?

每回答一个问题说明理由,回答问题的前提是不要运行此程序,回答完再运行~
分享到:
评论
3 楼 bleet 2009-09-03  
zhy20045923 写道
答案应该全是否定的,具体原因应该出在 pos = stream.read(data);,具体就不知道了

你的理解不够准确,既然该贴被评为新手帖,就让我了解这件事情吧!
先贴出执行结果:
12345
---------currut pos--------2
---------avalible size--------5
---------currut pos--------2
---------avalible size--------3
---------currut pos--------2
---------avalible size--------1
---------currut pos--------1
---------avalible size--------0
首先我们输入的12345加一个回车,那么对instream执行的aviliable(),实际上是7位,但是第一次打印出的为什么是5呢?这个新问题的答案也是解释为什么这段程序没有结束的答案。
最重要的原因是:InputStream stream = System.in;
当程序第一次进入while循环时因为System.in这个线程在wite,所以我们的执行线程也进入到wade状态,直到我们有输入,这时根据代码,直接执行read,读取2个byte,所以接下来的可读byte为5,当然说到这里,这个程序不退出也就一目了然了。
2 楼 zhy20045923 2009-08-25  
答案应该全是否定的,具体原因应该出在 pos = stream.read(data);,具体就不知道了
1 楼 bleet 2009-08-22  
难道太简单了吗?各位看客!

相关推荐

    C语言猜数字游戏代码

    【C语言猜数字游戏代码】是一个经典的编程练习项目,它能帮助初学...通过阅读和理解这段代码,你将加深对C语言基本概念的理解,并能掌握编写简单游戏的技巧。同时,这也是一个很好的实践项目,可以帮助你提高编程技能。

    猜数字源代码(猜数字源代码)

    标题中的“猜数字源代码”指的是...通过阅读和分析这段代码,你可以了解到如何使用Java的基本语法、控制结构以及类设计来创建一个简单的游戏。同时,这也是一个很好的实践案例,展示了如何将编程理论应用到实际项目中。

    猜数字c++源代码

    ### 知识点解析 ...通过以上分析,我们不仅理解了这段猜数字游戏的实现原理,还掌握了如何利用C++的基本语法和逻辑控制来完成实际问题的解决。此外,通过对代码的优化建议,可以进一步提升程序的质量和用户体验。

    你能解释一下这段代码的作用吗

    标题中的问题“你能解释一下这段代码的作用吗?”通常在编程交流中出现,意味着要解析一段特定的代码逻辑。描述中的信息表明这段代码涉及到密码安全,它检查用户是否使用了容易被猜到或获取的公共信息作为密码,以...

    猜数字小游戏python代码

    通过以上分析可以看出,这段代码不仅实现了基本的猜数字游戏功能,还涉及到了Python的基础语法、流程控制和异常处理等多个方面。对于初学者来说,这是一份很好的学习材料,有助于理解和掌握Python编程的基本概念和...

    c语言猜数字游戏源代码

    ### C语言猜数字游戏源代码解析 在编程学习过程中,编写...通过以上分析,我们可以看到这段代码虽然简单,但涵盖了C语言中多个重要的基础知识点,对于初学者理解和掌握C语言的基本语法和编程逻辑具有很好的示范作用。

    小程序游戏源码 你画我猜.zip

    【小程序游戏源码 你画我猜.zip】是一款基于微信小程序平台开发的游戏源代码,它提供了"你画我猜"的互动娱乐功能。这个压缩包包含了一整套用于构建和运行此类游戏的必要文件,是学习和理解小程序游戏开发的宝贵资源...

    猜数字游戏,C语言代码,txt格式

    根据给定文件的信息,我们可以总结出以下相关的IT知识点: ...综上所述,这段代码展示了如何使用C语言实现一个简单的猜数字游戏,涉及到了基础的输入输出、随机数生成、条件判断、循环结构、时间记录等功能。

    C++猜数字1.2版本代码

    通过阅读和理解这段代码,我们可以学习到C++的基础语法、面向对象编程概念以及如何使用标准库进行输入输出和错误处理。同时,这个猜数字游戏也是一个很好的实践项目,可以帮助我们提升逻辑思维能力和编程技巧。

    随机抽奖猜谜语程序(含代码)

    例如,开发者可能会在点击“开始抽奖”按钮后启动计时器,每隔一段时间就调用`Rnd`函数并获取一个随机数,然后与参与者列表中的编号进行比较,从而确定中奖者。 猜谜语部分的实现则涉及到字符串处理和用户交互。...

    javase阶段15个实战项目代码

    9. 异常处理:了解如何正确地捕获和处理异常,这是编写健壮代码的关键。 10. 注解与反射:通过使用注解和反射技术,可以实现元编程,增强代码的灵活性和可扩展性。 11. 序列化:学习如何序列化和反序列化对象,...

    Java简单的水果猜猜猜游戏

    这段代码包括了玩家、水果和游戏类。每个玩家有一个名称和得分,可以选择水果并处理。水果类包含名称和分数属性。游戏类实现了游戏的主要逻辑,包括回合循环和分数计算。 这是一个简单而有趣的Java控制台游戏示例,...

    用Java写的猜数字游戏源代码

    下面将对这段代码的关键知识点进行详细的解析: ### 1. Java基础知识 #### 1.1 导入必要的包 ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

    小游戏程序猜猜看!初学者就可以看懂!

    - `for`循环:重复执行一段代码,直到满足特定条件。 #### 3.3 函数 - `printf()`: 输出格式化字符串。 - `scanf()`: 从标准输入读取格式化数据。 #### 3.4 数组 - 一维数组:`int p[20];` - 二维数组:`char a[20...

    C++猜数字1.1.1版本代码

    在本项目中,我们关注的是一个名为"C++猜数字1.1.1版本代码"的程序,这是一个基于C++语言的简单游戏应用。通过描述我们知道,这个程序可以在DEV-C++集成开发环境中直接运行,这表明它是一个源代码级别的程序,需要...

    猜红心A游戏源码

    10. **版本控制与注释**:一个完整的源码项目通常会包含版本控制信息(如Git提交历史),以及对关键代码段的注释,以帮助理解代码功能和流程。 通过分析和实践这个【猜红心A游戏源码】,初学者不仅可以掌握基本编程...

    猜数字游戏C++代码

    ### 知识点解析 #### 1. C++基本语法结构 ...通过上述分析,我们可以看到这段代码实现了基于命令行界面的猜数字游戏,充分运用了C++语言的基础特性,并结合了一些高级功能来增强用户体验和游戏逻辑的复杂性。

    猜数字游戏基础代码无注释版

    猜数字游戏是一个经典的编程练习,通常用于教授初学者如何实现基本的控制流程、条件判断以及随机数生成。在这个基础无注释版中,我们...通过分析和重构这段代码,学生可以深化对C语言的理解,并培养解决问题的能力。

    猜数字小游戏java语言

    7. **代码注释**:好的代码应该包含详尽的注释,解释每段代码的功能,方便他人理解和维护。 8. **文件组织**:项目包含了多个类文件,这可能是为了实现模块化,提高代码的可读性和可维护性。每个类可能负责特定的...

Global site tag (gtag.js) - Google Analytics