zoukankan      html  css  js  c++  java
  • 在java中如何用键盘输入一个数,字符,字符串

    一,利用 Scanner 实现从键盘读入integer或float 型数据

     1 import java.util.*;  
     2 public class test {  
     3     public static void main(String args[])  
     4     {  
     5         Scanner in=new Scanner(System.in); //使用Scanner类定义对象  
     6         System.out.println("please input a float number");  
     7         float a=in.nextFloat(); //接收float型数据  
     8         System.out.println(a);  
     9         System.out.println("please input a integer number");  
    10         int b=in.nextInt(); //接收整形数据  
    11         System.out.println(b);  
    12     }  
    13 } 

    二,利用 BufferedReader实现从键盘读入字符串并写进文件abc.txt中

     1 import java.io.*;  
     2 public class Test  
     3 {  
     4     public static void main(String[] args) throws IOException  
     5     {  
     6         BufferedReader buf = new BufferedReader (new InputStreamReader(System.in));  
     7         BufferedWriter buff = new BufferedWriter(new FileWriter("abc.txt"));  
     8         String str = buf.readLine();  
     9         while(!str.equals("exit"))  
    10         {  
    11             buff.write(str);  
    12             buff.newLine();  
    13             str = buf.readLine();  
    14         }  
    15         buf.close();  
    16         buff.close();  
    17     }  
    18 }  

    关于JDK1.5 Scanner类的说明

    Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
    Scanner reader=new Scanner(System.in);

    然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:
    next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()


    使用nextLine()方法输入行中可能包含空格.如果读取的是一个单词,则可调用
    .next()方法

    三、Scanner和BufferedReader的区别

    在命令行模式下要输入数据至程序中时,我们可以使用标准输入串对象System.in.但是,我们并不经常直接使用它,因为System.in提供的 read方法每次只能读取一个字节的数据,而我们平时所应用的通常是读取一个字符串或者是一个数字,所以read方法所以提供的功能,对我们来说并没有太大的用处.
    在Java SE 6中,可以使用Scanner类取得用户的输入,Scanner类位于java.util包中,如果你要使用Scanner取得用户输入的话,要加上 import java.util.Scanner;这条语句.import的功能是告诉编译器,你将使用java.util包中的Scanner类.

     1 import java.util.Scanner;  
     2 public class Test  
     3 {  
     4     public static void main(String[] args)  
     5     {  
     6         Scanner scan = new Scanner(System.in);  
     7         System.out.println("请输入一个字符串:");  
     8         System.out.println("您输入的字符串是:" + scan.next());  
     9     }  
    10 }  

    运行上面的程序,你将会看到你输入的字符串将在下面原样显示出来.
    我们来看看这个程序中每条语句的意思:
    new是创建一个对象,程序中new的意思是创建了一个Scanner类的对象scan.但是在创建Scanner类的对象时,需要用System.in 作为它的参数,也可以将Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Scanner来作一些处理.
    Scanner类中提供了多个方法:
    next():取得一个字符串;
    nextInt():将取得的字符串转换成int类型的整数;
    nextFloat():将取得的字符串转换成float型;
    nextBoolean():将取得的字符串转换成boolean型;

    用Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键时,Scanner就会返回下一个输入. 当你输入的内容中间包括空格时,显然,使用Scanner就不能完整的获得你输入的字符串.这时候我们可以考虑使用BufferedReader类取得输入.其实在Java SE 1.4及以前的版本中,尚没有提供Scanner方法,我们获得输入时也是使用BufferReader的.
    BufferedReader类位于java.io包中,所以要使用这个类,就要引入java.io这个包:import java.io.BufferedReader.
    使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception).
    使用BufferedReader来取得输入,理解起来要复杂得多.但是使用这个方法是固定的,每次使用前先如法炮制就可以了.

    BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
    String text = buffer.readLine();
    readLine()方法会返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符.

     1 import java.io.BufferedReader;  
     2 import java.io.IOException;  
     3 import java.io.InputStreamReader;  
     4 public class TestBufferedReader  
     5 {  
     6     public static void main(String[] args) throws IOException  
     7     {  
     8         BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));  
     9         System.out.println("请输入一串字符串");  
    10         String text = buffer.readLine();  
    11         System.out.println("您输入的字符串是:" + text);  
    12     }  
    13 }  

    四,利用 System.in.read 实现从键盘读入char 型数据

    1 System.out.println("please input a char");  
    2         char c=(char)System.in.read();  
    3         System.out.println(c);  

  • 相关阅读:
    ant 软件包不存在报错
    在 Internet Explorer 中使用 Windows 窗体控件
    智能客户端
    Back to the Future with Smart Clients
    "Automation 服务器不能创建对象" 的解决方案
    Top 10 Reasons for Developers to Create Smart Clients
    Updater Application Block for .NET
    Smart Client Application Model and the .NET Framework 1.1
    Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
    智能客户端技术总结(二)
  • 原文地址:https://www.cnblogs.com/qianbi/p/java_io.html
Copyright © 2011-2022 走看看