您的位置:首页 > 编程语言 > Java开发

java I/O流(3)键盘录入,读取转换流和写入转换流

2016-09-13 21:04 441 查看
1.读取键盘录入的一行数据并打印

import java.io.*;

public class helloworld {

  public static void main(String[]args)throws IOException

  {
   
InputStream in=System.in;

    int by=0;

    StringBuilder sb=new StringBuilder();
   
while(true)

    {

   
int ch=in.read();
   
if(ch=='\r') continue;
   
if(ch=='\n') {

   
String s=sb.toString();

   
if("over".equals(s)) break;

   
System.out.println(s.toUpperCase());

   
sb.delete(0, sb.length());

   
}

   
else{

   
sb.append((char)ch);

   
}

        }
          }
}

2、能不能直接读取一行,类似于readLine()的方法,Java .io中reader类有个子类InputStreamReader,将字节流转换为字符流,再进行操作

InputStream in=System.in;

InputStreamReader isr=new InputStreamReader(in);

BufferedReader bufr=new BufferedReader(isr);

String line=null;

while((line=bufr.readLine())!=null)

{

if("over".equals(line))  break;

System.out.println(line.toUpperCase());

}

bufr.close();

3.除了这个方法之外,还可以用Scanner类,这个类在java.util.*包中

import java.util.Scanner;

Scanner sc=new Scanner(System.in);

System.out.println(“请输入你的姓名”);

String name=sc.nextLine();

System.out.println("请输入你的年龄");

int age=sc.nextInt();

System.out.println("请输入你的工资");

float salary=sc.next.nextFloat();

System.out.println("你的信息如下:");

System.out.println(" 姓名:"+name+“\n年龄:"+age+"\n工资"+salary);

Scanner类,不管是对于字符串还是整型数据或者是float类型的变量,只需做一点小小的改变,就能够实现功能

4、Writer类中的OutputStreamWriter写入转换流

      OutputStream out=System.out;

      OutputStreamWriter osw=new OutputStreamWriter(out);

      BufferedWriter bufw=new BufferedWriter(osw);
      InputStream in=System.in;

       InputStreamReader isr=new InputStreamReader(in);

       BufferedReader bufr=new BufferedReader(isr);

        

        String line=null;

        while((line=bufr.readLine())!=null)

        {

        if("over".equals(line)) break;

        bufw.write(line.toUpperCase());

        bufw.newLine();

        bufw.flush();//虽说字符流的缓冲区关闭前可能会刷新,如果只读取一行的话,

                     //写成bufw.close()也行,但这是在while循环中关闭之后无法进入下一次循环

        }
       bufw.close();

       bufr.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: