Java I/O 学习

1. 控制台上的输入输出

InputStreamReader 和 OutputStreamReader :

把一个以字节为导向的 stream 转换成一个以字符为导向的 stream 。

InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。

使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。

InputStreamReader 的 read() 方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。

为了达到更高效率,考虑用 BufferedReader 封装 InputStreamReader ,

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

例如: // 实现从键盘输入一个整数

String s = null;              
InputStreamReader re = new InputStreamReader(System.in);  
BufferedReader br = new BufferedReader(re);  
try {  
   s = br.readLine();  
   System.out.println("s= " + Integer.parseInt(s));  
   br.close();  
}  
catch (IOException e)  
{   
   e.printStackTrace();  
}  
catch (NumberFormatException e)
// 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。  
{  
   System.out.println(" 输入的不是数字 ");  
} 
 


2.文件的输入输出

简单的示例程序如下:

/**
* 读出1.txt中的内容,写入2.txt中
*
*/
import java.io.*;
public class ReadWriteFile{
public static void main(String[] args){
   try{
    File read = new File("c:\\1.txt");
    File write = new File("c:\\2.txt");  
    BufferedReader br = new BufferedReader(
          new FileReader(read));
    BufferedWriter bw = new BufferedWriter(
          new FileWriter(write));
    String temp = null;
    temp = br.readLine();
    while(temp != null){
     //写文件
     bw.write(temp + "\r\n"); //只适用Windows系统
     //继续读文件
     temp = br.readLine();
    } 
    bw.close();
    br.close();
   }catch(FileNotFoundException e){ //文件未找到
    System.out.println (e);
   }catch(IOException e){
    System.out.println (e);
   }
}
}


3.读取一行上的多个数据

其中System.in可以换成其他输入流。如BufferedReader。

import java.util.*;
public class ScannerTest {

   public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
	while(scanner.hasNextInt())
	{
	    System.out.println(scanner.nextInt());
	}
			
	scanner.close();

    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值