对比C++的I/O方法,Java的输入输出过于复杂,方法太多往往会无从下手。现综合一些博文和教材,经过我的对比实验验证,得出Java最为简洁实用的I/O方法,供程序员参考。
一、对于获取键盘输入值的情况,用Scanner类解决:
用键盘输入常用的是用BufferedReader类处理,先输入字符串再转化为其他形式,缺点在于字符太多,难以记忆。而在JDK1.5之后Java提供了专门的输入数据类Scanner,经过试验,用Scanner类处理键盘输入输出比较简洁实用,1、基本方法如下:
import java.util.Scanner;
Scanner sc=new Scanner(System.in); //创建Scanner对象sc
int num1=sc.nextInt(); //输入整型数字
float num3=sc.nextFloat(); //输入float型数字
double num4=sc.nextDouble(); //输入double型数字
String s1=sc.next(); //输入字符串,以空格作为分隔符
String s2=sc.nextLine(); //输入字符串,以回车作为分隔符
2、如果要用于防止数据类型输入错误导致的程序崩溃情况,引入异常处理机制,代码如下
import java.util.Scanner;
public class KeyboardInput
{
public static void main(String args[])
{
System.out.println("请输入一个整型值:");
Scanner sc ;
int num=0;
while(true)
{
try{
sc = new Scanner(System.in);
num = sc.nextInt();
break;
}
catch (Exception e) //显示后执行catch后面的语句,由于是while循环,故返回输入
{
System.out.println("输入类型错误,请输入一个整型值:");
}
}
System.out.println("输入的整数 是:" + num);
sc.close(); //使用完后关闭对象sc
}
}
3、程序示例:
从键盘输入一个两个数字,输出数字和;从键盘输入字符串:“输出的和为 :”,并输出。
package 从键盘输入控制台输出;
import java.util.Scanner;
public class KeyboardInput
{
public static void main(String args[])
{
int num1=0;
float num2=0;
System.out.println("请输入一个整数:");
while(true)
{
try
{
Scanner sc=new Scanner(System.in);
num1=sc.nextInt();
break;
}
catch(Exception e)
{
System.out.println("输入类型有误,请输入整型数");
}
}
System.out.println("请输入一个单精度浮点数:");
while(true)
{
try
{
Scanner sc=new Scanner(System.in);
num2=sc.nextFloat();
break;
}
catch(Exception e)
{
System.out.println("输入类型有误,请输入输入浮点数");
}
}
System.out.println("输入一个字符串");
Scanner sc=new Scanner(System.in);
String sout=sc.nextLine();
System.out.println(sout+(num1+num2));
sc.close();
}
}
二、对于文件的读取与写出情况,用File,FileReader与FileWriter类进行处理
1、使用File类创建一个新文件
import java.io.*;
public class FileIO
{
public static void main(String args[])
{
File f=new File("d:"+File.separator+"test.txt");
//给出文件路径,File.separator相当于文件分隔符
try{
f.createNewFile(); //根据给定的路径创建新文件
}
catch(IOException e){
e.printStackTrace();
}
}
}
用File类删除制定文件:
File f=new File("d:"+File.separator+"test.txt");
if(f.exists())
{
f.delete();
}
2、用FileReader与FileWriter对文件内容进行读取与写入
import java.io.*;
import java.io.File;
import java.io.FileWriter;
//文件的读取与写入
public class FileWR
{
public static void main(String args[])throws IOException
{
//写入文件到test1里面
File file1=new File("d:"+File.separator+"test1.text");//建立文件对象file1
FileWriter filewriter=new FileWriter(file1); //建立文件输出字符流对象filewriter
filewriter.write("123456789");//写入字符给字符流filewriter
filewriter.close(); //关闭字符流,注意字符流是保存在缓冲区,必须关闭才能输出在文件中
//从test1读出文件,显示出来
FileReader filereader=new FileReader(file1); //创建file1的文件输入流filereader
int len=0; //进行读取操作
char c[]=new char[1024];
int temp=0;
while((temp=filereader.read())!=-1)
{
c[len]=(char)temp;
len++;
}
filereader.close(); //关闭输入流
System.out.println("内容为:"+new String(c,0,len)); //显示
}
}