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