eg:1
问题: 从键盘输入一个字符串,要求将读取到的整行字符串转换为大写之后输出,然后继续进行输入操作,知道输入"e"或者输入"exit"的时候退出程序
- 我们分析这个问题之后其实可以想到,这个问题的解决方法一共有两种:
- 使用Scanner来实现,调用Scanner类中的next()方法就可以读取从控制台输入的一个字符串
- 使用System.in来实现
- System.in —> 转换流 —> BufferedReader(),然后调用BufferedReader类中的readLine()方法
package IO流.标准的输入输出流;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo1 {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
while(true){
String data = br.readLine();
//判断程序是否要终止
if("e".equalsIgnoreCase(data) || "exit".equalsIgnoreCase(data)) {
System.out.println("程序终止");
break;
}
String upperCase = data.toUpperCase();
System.out.println(upperCase);
}
br.close();
}
}
eg:2.
问题:创建一个MyInput.java,包含从键盘读取byte,short,int,double ,float,boolean,String等数据类型的数据的方法
- 我们的Scanner类就是完成了这样的一个功能
package IO流.标准的输入输出流;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class MyInput {
public static String readString(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = "";
try{
s = br.readLine();
}catch(IOException e){
e.printStackTrace();
}
return s;
}
//从键盘上读取byte类型的数据
public static byte readByte(){
//通过基本类型类型包装类通过parseXxx()方法将String类型的数据转换为对应的xxx类型
//就比如这里通过使用Byte包装类中的parseByte()方法将String类型的数据转换为对应的byte类型
return Byte.parseByte(readString());
}
public static short readShort(){
//同上
return Short.parseShort(readString());
}
public static int readInt(){
//同上
return Integer.parseInt(readString());
}
public static float readFloat(){
//同上
return Float.parseFloat(readString());
}
public static double readDouble(){
//同上
return Double.parseDouble(readString());
}
public static boolean readBoolean(){
//同上
return Boolean.parseBoolean(readString());
}
}


![标准的输入输出流测试 [Java] 标准的输入输出流测试 [Java]](http://www.mshxw.com/aiimages/31/695068.png)
