JAVA中数据读入的方法

在Java中不像C语言中那么方便直接使用scanf(),下面是我积累的一些方法:
1.控制台输入数据
  1.1 主方法的形式参数
  1.2 利用字节输入流
  1.3 利用字符输入流
  1.4 利用文本扫描类
2. 对话框输入数据
下面将针对这几种方法分别利用例子进行说明:
1. 控制台输入数据
   1.1 主方法的形式参数
     在Java中利用main(String args[])中的args数组来对参数进行赋值,有下例:
   package InputTest;
public class DataKeyboardInput1 {
 /**主方法的形式参数来输入数据
  * DataKeyboardInput1.java
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        System.out.println(args[0]);
 }
}
在命令行下输入javac  DataKeyboardInput1.java   --》java DataKeyboardInput1    HelloWorld  输出就是 HelloWorld 了
   1.2 利用字节输入流
      字节输入流System.in 是类InputStream的常量对象,调用read()方法可以从键盘接收数据。实现的步骤是:先把数据读入字节数组中,然后利用字节数组定义字符串,最后把字符串转化为需要的数据类型。
     package InputTest;
import java.io.*;
public class DataKeyboardInput2 {
 /**利用字节输入流来输入数据
  * DataKeyboardInput2.java
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        byte buf[]=new byte[10];   //字节数组,输入为10个
        String str;
        int num = 0;
        try{
         //把数据读入到字节数组中
         System.in.read(buf);
         //利用字节数组创建字符串
         str=new String(buf,0);
         //把字符串数据转换为整型数据
         num=Integer.parseInt(str.trim());
        }catch(Exception e){
         System.out.print(e);
        }System.out.println(num);
 }
}
1.3 利用字符输入流
    字符输入流BufferedReader是从字符输入流中读取文本,缓冲各个字符,从而提供字符,数组和行的高效读取。常用方法:
    read():  读取单个字符;   readLine():读取一行字符,即为读取一个字符串
   package InputTest;
 
 import java.io.*;
 public class DataKeyboardInput3 {
 
  /**利用字符输入流来进行输入处理
   * @param args
   */
  public static void main(String[] args) throws IOException {
   // TODO Auto-generated method stub
          BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
          String str="";
          int num = 0;
          try{
           str=br.readLine();
           num=Integer.parseInt(str);
          }catch(IOException e){
           System.out.println(e.toString());
          }System.out.println(num);
  }
 }
1.4 利用文本扫描类
    文本扫描类Scanner是jdk5.0新增加的类,它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,它使用分隔符模式将其输入分解为标记默认情况下该分隔符模式与空白匹配,然后使用不同的next方法将得到的标记转换为不同类型值。获取基本类型数据的方法是:
    整型:nextInt()      单精度:nextFloat()      双精度: nextDouble()      字符串: next()
 
package InputTest;
import java.util.Scanner;
public class DataKeyboardInput4 {
 /**利用文本扫描类来进行输入处理
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        Scanner input=new Scanner(System.in);
        int num=input.nextInt();
        System.out.println(num);
 }
}
 
2. 对话框输入数据
      使用JOptionPane创建输入对话框,实现键盘输入
     showConfirmDialog():  询问一个确认问题,如yes/no/cancer
    showInputDialog(): 提示要求某些输入
    showMessageDialog(): 告知用户某事已经发生
   其中,输入对话框的常用参数形式有:
    showInputDialog(Object message) : message 表提示信息
    showInputDialog(Object message,Object initialSelectionValue): 如果没有输入数据,则默认初始值为initalSlectionValue
 
package InputTest;
import javax.swing.JOptionPane;
public class DataInputDialog {
 /**对话框输入数据
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        String str;
        str=JOptionPane.showInputDialog("input data:");
        int num=Integer.parseInt(str);
        System.out.println(num);
 }
}


import   java.io.*;   
  public   class   test{   
          public   static   void   main(String[]   args)   throws   IOException{   
            
  BufferedReader   in   =   new   BufferedReader(new   InputStreamReader(System.in));   
            
          System.out.print("input   3   number>");   
          String   line   =   in.readLine();   
          int   x   =   Integer.parseInt(line);   
          line   =   in.readLine();   
          int   y   =   Integer.parseInt(line);   
          line   =   in.readLine();   
          int   z   =   Integer.parseInt(line);   
            
      System.out.println(x+y+z);         
      }   
  }   
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public static void main(String[] args) {
  InputStreamReader isr = new InputStreamReader(System.in);
  BufferedReader br = new BufferedReader(isr);
  String s = null;
  try {
    s = br.readLine();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  System.out.println("Hello: " + s);
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值