java 21 - 11 IO流的标准输入流和标准输出流
标准输入输出流
System类中的两个成员变量:
public static final InputStream in “标准”输入流。
public static final PrintStream out “标准”输出流。
pnputStream is = System.in;
printStream ps = System.out;
System.out; 标准输出流:
其实从上面就可以看出来了
System.out.println("helloworld");
其实等于
PrintStream ps = System.out;
ps.println("helloworld");
注意:
PrintStream ps = System.out;
//下面这两种方法,其实是一种方法是不存在的,注:()内没东西。
ps.print();
System.out.print();
来玩个有意思的东西:
如何让字节流变为字符流进行操作呢?
我们可以通过转换流来玩,字节流→转换流→字符流
public static void main(String[] args) throws IOException {
// 获取标准输入流
// // PrintStream ps = System.out;
// // OutputStream os = ps;
// OutputStream os = System.out; // 多态
// // 我们用字符流来包装字符流,表面是字符流,其实底层用的还是字节流(标准输出流)
// OutputStreamWriter osw = new OutputStreamWriter(os);
// BufferedWriter bw = new BufferedWriter(osw);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
System.out));
bw.write("hello");
bw.newLine();
bw.write("world");
bw.newLine();
bw.flush();
bw.close();
}
。。。麻烦要死,理解就好了吧
System.in; 标准输入流:
输入流和输出流差不多,不用介绍。下面说下一个有意思的东西:
到JDK1.7为止,有3种方式实现键盘录入:
1、main方法的args接收参数:
java HelloWorld hello world java
2、Scanner (JDK1.5以后才有的)
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int x = sc.nextInt();
...
那么,在JDK1.5之前,用的是这种方式:
3、通过字符缓冲流包装标准输入流实现:
public static void main(String[] args) throws IOException {
// //获取标准输入流
// InputStream is = System.in;
// 但是,这个一次只能获取一个字节。而我们想要的是一次获取一行数据
// 要想实现,首先你得知道一次读取一行数据的方法是哪个呢?
// readLine()
// 而这个方法在BufferedReader类中,所以,我们应该创建BufferedReader的对象,但是底层还是的使用标准输入流
// BufferedReader br = new BufferedReader(is);
// 但是这里还是出现错误。原因是:字符缓冲流只能针对字符流操作,而InputStream是字节流,所以不能使用
// 要想使用的话,就只能把字节流转换为字符流,然后在通过字符缓冲流操作
// InputStreamReader isr = new InputStreamReader(is);
// BufferedReader br= new BufferedReader(isr); 这两句可以写作下面一句
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个字符串:");
String line = br.readLine();
System.out.println("你输入的字符串是:" + line);
System.out.println("请输入一个整数:");
// int i = Integer.parseInt(br.readLine());
line = br.readLine();
int i = Integer.parseInt(line);
System.out.println("你输入的整数是:" + i);
}
结论:。。。还是用Scanner吧
java 21 - 11 IO流的标准输入流和标准输出流的更多相关文章
- java 21 - 12 IO流的打印流
打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提 ...
- java 21 - 13 IO流之序列化和反序列化
序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输.对象 -- 流数据(ObjectOutputStream) 构造方法:ObjectInputStream(InputStream in) ...
- java 21 - 1 IO流中的字符流概述
字节流通过读取一个byte数组的方式可以读取中文的,但是有可能出现小问题,所以,读取中文最好是用字符流. 字符流: 字符流=字节流+编码表. 编码表: 由字符及其对应的数值组成的一张表 编码表介绍: ...
- java 21 - 13 IO流之 合并流
SequenceInputStream :表示其他输入流的逻辑串联. 构造方法摘要 SequenceInputStream(Enumeration<? extends InputStream&g ...
- java 21 - 7 IO流小结的图解
- 第53节:Java当中的IO流(上)
Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...
- Java当中的IO流(上)
Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...
- 第55节:Java当中的IO流-时间api(下)-上
Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...
- Java中的IO流(四)
上一篇<Java中的IO流(三)>把IO流中的文件及目录操作的对象File类记录了一下,本篇把本不属性IO流但又和IO流有关系的一个对象作一下记录,此对象本属于集合框架里的一个子集,即Pr ...
随机推荐
- 控制台(Console)报错:java.io.IOException: Broken pipe
控制台(Console)输出: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Meth ...
- [Tool] 使用Astah绘制UML图形
[Tool] 使用Astah绘制UML图形 前言 在软件开发的过程中,开发人员可以绘制UML图形来将分析设计内容转化为图形化文件,方便在团队之间传递分析设计结果.但在团队经费有限的情景中,可能没办法为 ...
- jQuery corner 圆角插件
jquery.corner是一款强大的圆角插件(所产生的不止只是圆角效果),兼容包括IE6.IE7.IE8.firefox.Opera .Safari.Chrome等主流浏览器,唯一的缺点是为了产生边 ...
- 调用存储过程从EntityFramework
Prerequisites The prerequisite for running these examples are the following sample tables with test ...
- iScroll-js—“smooth scrolling for the web”
原文地址: http://bigdots.github.io/2015/12/15/iScroll-js%E2%80%94%E2%80%94smooth%20scrolling%20for%20the ...
- 2015年第6本(英文第5本):Harry Potter 1 哈利波特与魔法石
书名: Harry Potter 1 – Harry Potter and the Sorcerer’s Stone 作者:J.K. Rowling 单词数:7.8万 不重复单词数:6000(我怎么感 ...
- 安卓开发_慕课网_ViewPager实现Tab(App主界面)
学习内容来自“慕课网” 网站上一共有4种方法来实现APP主界面的TAB方法 这里学习第一种 ViewPager实现Tab 布局文件有7个, 主界面acitivity.layout <Linear ...
- IOS开发--仿制网易新闻
学习来源:袁峥老师的<快速集成App中顶部标题滚动条> 此次博文写的是按需求分析写代码,思路条理性杠杠的,可以提高的编码实现速度哦. 效果: 根据这个网易新闻的界面,需求分析: ...
- python idle 清屏问题的解决
在学习和使用python的过程中,少不了要与python idle打交道.但使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏? 我在stackoverflow看到这样两种答案 ...
- 用nginx-gridFS读取MongoDB的图片及文件(为什么你老是配不成功?)
最近在部署公司服务器的nginx + mongodb + gridfs环境: 搜索了N多文档,基本上都一样,期间遇到很多问题: 下面是整理的一份搭建文档: 摘要 nginx-gridfs是一个ngin ...