Java实用I/O方法总结



对比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();

}

}

 

 

 

二、对于文件的读取与写出情况,用FileFileReaderFileWriter类进行处理

 

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、FileReaderFileWriter对文件内容进行读取与写入

 

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)); //显示

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三尾鱼网络科技

如果对您有帮助,赠人玫瑰手留余

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值