zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Java IO--Scanner

JAVAIO -- Scanner
2023-09-14 08:57:16 时间
public static void main(String args[]){ Scanner scan = new Scanner(System.in) ; // 从键盘接收数据 System.out.print("输入数据:") ; String str = scan.next() ; // 接收数据 System.out.println("输入的数据为:" + str) ; }; 修改分隔符:
import java.util.* ;

public class ScannerDemo02{

 public static void main(String args[]){

 Scanner scan = new Scanner(System.in) ; // 从键盘接收数据

 System.out.print("输入数据:") ;

 scan.useDelimiter("\n") ;

 String str = scan.next() ; // 接收数据

 System.out.println("输入的数据为:" + str) ;

};

public static void main(String args[]){ Scanner scan = new Scanner(System.in) ; // 从键盘接收数据 int i = 0 ; float f = 0.0f ; System.out.print("输入整数:") ; if(scan.hasNextInt()){ // 判断输入的是否是整数 i = scan.nextInt() ; // 接收整数 System.out.println("整数数据:" + i) ; }else{ System.out.println("输入的不是整数!") ; System.out.print("输入小数:") ; if(scan.hasNextFloat()){ // 判断输入的是否是小数 f = scan.nextFloat() ; // 接收小数 System.out.println("小数数据:" + f) ; }else{ System.out.println("输入的不是小数!") ; }; Scanner这个类虽然可以接收各种类型,但是对于日期型的数据却无法接收。 如果要想接收Date类型的数据,则只能通过字符串转型,但是在接收的时候依然可以使用Scanner类中提供的方法进行验证: ·验证:public String hasNext(Pattern) ·接收:public String next(String pattern)
import java.util.* ;

import java.text.* ;

public class ScannerDemo04{

 public static void main(String args[]){

 Scanner scan = new Scanner(System.in) ; // 从键盘接收数据

 String str = null ;

 Date date = null ;

 System.out.print("输入日期(yyyy-MM-dd):") ;

 if(scan.hasNext("^\\d{4}-\\d{2}-\\d{2}$")){ // 判断

 str = scan.next("^\\d{4}-\\d{2}-\\d{2}$") ; // 接收

 try{

 date = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;

 }catch(Exception e){}

 }else{

 System.out.println("输入的日期格式错误!") ;

 System.out.println(date) ;

};
还可以直接从文件中读取信息。假设:d:\test.txt文件中写入内容:
使用Scanner直接读取文件内容:
import java.util.* ;

import java.text.* ;

import java.io.* ;

public class ScannerDemo05{

 public static void main(String args[]){

 File f = new File("D:" + File.separator + "test.txt") ; // 指定操作文件

 Scanner scan = null ;

 try{

 scan = new Scanner(f) ; // 从键盘接收数据

 }catch(Exception e){}

 String str = null ;

 if(scan.hasNext()){

 str = scan.next();

 System.out.println("文件内容为:" + str) ;

};
现在的文件内容确实读取进来了。但是此程序依然不完美。以上只能读取第一行数据,因为存在换行,所以就认为读完了。 所以在使用Scanner的时候,要考虑换行的功能:
import java.util.* ;

import java.text.* ;

import java.io.* ;

public class ScannerDemo05{

 public static void main(String args[]){

 File f = new File("D:" + File.separator + "test.txt") ; // 指定操作文件

 Scanner scan = null ;

 try{

 scan = new Scanner(f) ; // 从键盘接收数据

 }catch(Exception e){}

 StringBuffer str = new StringBuffer() ;

 while(scan.hasNext()){

 str.append(scan.next()).append(\n) ; // 取数据

 System.out.println("文件内容为:" + str) ;

};

Java IO详解 初学Java时,一直搞不懂Java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。