Java(标准输入/输出流)
2016-09-05 13:15
357 查看
Java通过系统类System实现标准输入/输出的功能,定义了3个流变量:in,out,和err.这3个流在Java中都定义为静态变量,可以直接通过System类进行调用。System.in表示标准输入,通常指从键盘输入数据;System.out表示标准输出,通常指把数据输出到控制台或者屏幕;System.err表示标准错误输出,通常指把数据输出到控制台或者屏幕。
1.简单标准输入
System.in作为字节输入流类InputStream的对象实现标准输入,通过read()方法从键盘接受数据。
int read()
int read(byte b[])
int read(byte b[],int offset,int len)
结果
input:
abcd
Output
97 98 99 100 13 10
97 98 99 100 13 10 count=6
分析:程序运行使,从键盘输入4个字符abcd并按Enter键,保存在缓冲区b中的元素个数count为6,Enter占用最后两个字节
2.Scanner类与标准输入结合
在通常情况下需要从标准输入读取字符,整数,浮点数等具体类型的数据。System.in作为标准输入流,是InputStream类的一个对象,其read()方法的主要功能是读取字节和字节数组,不能直接得到需要的数据(如整型,浮点型)。此时,需要另外一个类java.util.Scanner的配合。可以利用Scanner类对标准输入流System.in的数据进行解析,得到需要的数据。
3.标准输出
System.out作为打印流PrintStream的对象实现标准输出,其定义了print和println方法,支持将Java的任意基本类型作为参数。
public void print(int i);
public void println(int i);
JDK5.0后的版本对PrintStream类进行了扩充,支持数据的格式化输出,增加了printf()方法。
public PrintStream printf(String format,Object…args)
public PrintStream printf(Locale 1,String format,Object…args)
1.简单标准输入
System.in作为字节输入流类InputStream的对象实现标准输入,通过read()方法从键盘接受数据。
int read()
int read(byte b[])
int read(byte b[],int offset,int len)
<code class="hljs cs has-numbering">import java.io.IOException; <span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> StdInput{ <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String[] args) throws IOException { System.<span class="hljs-keyword">out</span>.println(<span class="hljs-string">"input:"</span>); <span class="hljs-keyword">byte</span> b[]=<span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[<span class="hljs-number">512</span>]; <span class="hljs-keyword">int</span> count=System.<span class="hljs-keyword">in</span>.read(b); System.<span class="hljs-keyword">out</span>.println(<span class="hljs-string">"Output"</span>); <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i=<span class="hljs-number">0</span>;i<count;i++) { System.<span class="hljs-keyword">out</span>.print(b[i]+<span class="hljs-string">" "</span>); } System.<span class="hljs-keyword">out</span>.println(); <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i=<span class="hljs-number">0</span>;i<count;i++) { System.<span class="hljs-keyword">out</span>.print((<span class="hljs-keyword">byte</span>)b[i]+<span class="hljs-string">" "</span>); } System.<span class="hljs-keyword">out</span>.println(<span class="hljs-string">"count="</span>+count); } } </code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li></ul>
结果
input:
abcd
Output
97 98 99 100 13 10
97 98 99 100 13 10 count=6
分析:程序运行使,从键盘输入4个字符abcd并按Enter键,保存在缓冲区b中的元素个数count为6,Enter占用最后两个字节
2.Scanner类与标准输入结合
在通常情况下需要从标准输入读取字符,整数,浮点数等具体类型的数据。System.in作为标准输入流,是InputStream类的一个对象,其read()方法的主要功能是读取字节和字节数组,不能直接得到需要的数据(如整型,浮点型)。此时,需要另外一个类java.util.Scanner的配合。可以利用Scanner类对标准输入流System.in的数据进行解析,得到需要的数据。
3.标准输出
System.out作为打印流PrintStream的对象实现标准输出,其定义了print和println方法,支持将Java的任意基本类型作为参数。
public void print(int i);
public void println(int i);
JDK5.0后的版本对PrintStream类进行了扩充,支持数据的格式化输出,增加了printf()方法。
public PrintStream printf(String format,Object…args)
public PrintStream printf(Locale 1,String format,Object…args)
相关文章推荐
- [Java]一、Java开发基本步骤
- Rxjava详解
- java的异常和错误有什么区别。
- java基础算法50题
- Java String 字符串
- eclipse配置jdk和jre
- Java四种代码块
- Java数据类型转换
- Atitit.java expression fsm 表达式分词fsm引擎
- Atitit.java expression fsm 表达式分词fsm引擎
- Atitit.java expression fsm 表达式分词fsm引擎
- java学习日记_20:面向对象之this关键词的概述和。07.08
- JavaSE学习_07_final_duotai_super_typeConvert
- Spring Boot 添加JSP支持【转】
- Q13--树的子结构
- JNI字段描述符“([Ljava/lang/String;)V”
- 为什么JavaByte类型的取值范围是-128~127
- 关于spring-boot 同时支持jsp和freemarke的问题
- 简谈java中的阻塞非阻塞与同步异步
- java NIO 实现非阻塞socket通信