上次更新距离时间太长了,没有好好督促自己,我的错。
今天又是基础知识,关于Java中我们怎样通过键盘获取输入的字符,字节等,我争取在后面有更深入的研究。
还是先来理一下思路,要输入输出,那么肯定少不了java.io。为了方便理解,还是老规矩先上链接。
Java I/O官方文档,有时间还是看官方文档比较靠谱
Java程序通过流来执行I/O,这里的I/O,指的是Input,Output中文翻译就是输入输出的意思。而流(stream)是产生或使用信息的抽象,简单的比喻就是水流。而我们的输入输出是需要数据的,所以,我们在使用的时候当然就是指的数据流了。当前版本的 java 8 定义了两种类型的流:字节流和字符流。字节流处理字节的输入输出,字符流处理字符的输入输出。
基础知识就到这里吧,今天只是作为了解,就不更深入了。如果还有不懂得同学,千万回家多看看官方文档,把整个I/O的知识系统了解,再重点熟悉。
重点来了,先从简单的开始,看代码
import java.io.IOException;
public class Study_20161109004 {
public static void main(String args[]) throws IOException{
System.out.println("输入一个字符: ");
char i=(char)System.in.read(); //输入一个字符
System.out.println(i); //输出这个字符
}
}
代码很简单,简单说明。
功能:从控制台(Console)输入一个字符,再输出一个字符
因为我们只是定义了一个char,所以我们的输入和输出都只是一个字符,这样的解释就很清晰了。
重点:在main方法的后面,我们加了throws IOException. 原因是,一条输入语句可能产生一个IOException异常,而此时我们无法处理该异常,因此我们要从main()开始抛出异常,而且也需要这样来指定异常。(这不是人为加上的,是java,如果没有添加,java就把你的代码当作不完整的代码,不能运行)
System.in.read().这里并没有用到I/O包,至于为什么我也不能解释,如果有大神可以来解释一下,洗耳恭听。
继续看代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Study_20161109005 {
public static void main(String args[]) throws IOException{
BufferedReader mBr=new BufferedReader(new InputStreamReader(System.in));
String mStr=null;
System.out.println("输入一个字符串: ");
mStr=mBr.readLine();
System.out.println(mStr);
}
}
这里用到了两个东西一定要理解
- BufferedReader ,含义是:输入字符流缓冲
- InputStreamReader ,含义是:将字节转换为字符的输入流
代码逻辑:
- 先定义一个BufferedReader
- 再定义一个空的字符串
- 把输入的BufferedReader放到字符串里面
- 输出字符串
再来代码
import java.util.Scanner;
public class Study_20161109008 {
public static void main(String args[]){
Scanner mSc=new Scanner (System.in);
System.out.println("请输入一段文字: ");
String name=mSc.nextLine();
System.out.println("请输入一个整型数字: ");
int age=mSc.nextInt();
System.out.println("请输入一个float型数字: ");
float salary=mSc.nextFloat();
System.out.println();
System.out.println("文字: "+name+"\t"+"整数: "+age+"\t"+"float数字: "+salary);
}
}
这里有一个东西要理解:
Scanner,这是一个类。
对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能
代码逻辑:
- 定义一个Scanner
- 把输入的字符串,数字,float型变量全部放到Scanner
- 把Scanner里面的东西传递
- 输出
简单的键盘输入就介绍到这里吧
肯定有很多不足的地方,还是希望有看到的同学多多指出,共同成长
其实,我在I/O这块儿也学习得不是很好,只能说是赶鸭子上架
如果要成为大牛,必要的就是基础知识一定要非常非常扎实
多提意见,加油,加油