想起了以前学c++的时候,能够在那个黑黑的界面上(console)输入些值,然后打印出来,欣喜若狂的。
今天想了一下,在java,这个怎么实现呢?想了一下,真的不知道,呵呵。
找了一下,终于找到了,代码如下:
[code="java"] public static void main(String[] args)
{
System.out.println("Hello World!");
StringBuffer a;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try
{
System.out.println("请输入br的值:");
String aString = br.readLine();
System.out.println("br的值是:"+aString);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
原来,我一直都还是菜鸟。
这里涉及到了BufferedReader 。
在网上找到:
多数实际的java应用不是基于文本的,控制台的应用程序,而是基于图形化的applet,这些applet依赖于与用户交互的AWT类,java程序通过流来完成输入输出,java通过定义在java.io包中的类层次实现流
Java定义了两种类型的流: 字节流与字符流
字节流未处理字节的输入和输出提供了方便的方法,用于诸如读写二进制等数据,字符流为处理字符的输入输出提供的方便的方法: 它们采用Unicode,因而能够国际化
Java的最初版本(java1.0)不包括字符流,在java1.1增加了字符流
字节流顶层两个抽象类:InputStream和OutputStream,定义了其他流类实现的关键方法,read(),write()
字符流顶层两个抽象类:Reader和Writer,同样两个最重要的方法read(),write()
在java中控制台输入是通过从System.in中读取数据来完成的。可以在BuffererReader对象中包装vSystem.in来创建一个字符流,BufferedReader支持缓冲输入流,常见构造函数
BufferedReader(Reader inputReader)
InputReader是链接被创建的BufferedReader对象的流。Reader是一个抽象类,具体的一个子类是InputStreamReader。他负责转换字节为字符。若要获得一个与vsystem.in相连的InputStreamReader对象,可使用下面的构造函数
InputStreamReader(InputStream inputStream)
因为system.in是InputStream类型的对象 所以可以使用inputStream,综上,下面代码创建一个与键盘相连的BufferedReader
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
读取字符
import java.io.*;
public class Read1 {
public static void main(String[] args)throws IOException
{
char c;
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("输入‘Q’退出");
do{
c=(char)br.read();
System.out.println(c);
}while(c!='Q');
}
}
读取字符串
import java.io.*;
public class Read2 {
public static void main(String[] args)throws IOException
{
String str;
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("输入’quit’退出");
do{
str=br.readLine();
System.out.println(str);
}while(!str.equals("quit"));
}
}
运行结果
输入’quit’退出
sjk
sjk
sk
sk
quit
quit