其实就是优化的输入输出:
1.BufferedReader:从缓冲区中读取内容
BufferedReader temp=new BufferedReader(new InputStreamReader(System.in));
//这里输入的时候,碰到回车键就表示输入终止了,相当于只能输入一行
System.out.println("请输入内容:");
String str=temp.readLine();//表示读出一行
System.out.println(str);
new BufferReader将字符流放到字符流缓冲区之中
但是System.in得到的是字节流
所以需要通过InputStreamReader()方法将字节流转化为字符流
如果想要读入多行数据:
BufferedReader temp=new BufferedReader(new FileReader(new File("C://Users//15776//Desktop//test//人名.txt")));
//readline函数每次读入一行数据
String str1=temp.readLine();
String str2= temp.readLine();
String str3= temp.readLine();
String str4= temp.readLine();
String str5= temp.readLine();
String str6= temp.readLine();
System.out.println(str1);//mother
System.out.println(str2);//jack
System.out.println(str3);//monkey
System.out.println(str4);//孟克
System.out.println(str5);//ribuluo
System.out.println(str6);//#¥*
一个实战中遇到的例子:
没用BufferedReader,需要一个一个
//读入一个数组,本来是:
Scanner sc=new Scanner(System.in);
//输入数组的长度
int n=sc.nextInt();
int[] nums=new int[n];
for(int i=0;i<n;i++)
{
nums[i]=sc.nextInt();
}
用了BufferedReader:可以一次性
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String[] strs=br.readLine().split(" ");
int[] nums=new int[100];
for(int i=0;i<strs.length;i++)
{
nums[i]=Integer.parseInt(strs[i]);
}
br.close();
2.BufferedWriter:输出数据
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(num);
bw.flush();
//这样比直接System.out.println(num)要更快很多
//输入一串字符(包括汉字,数字,空格,英文字母.....)分别统计出各类的个数
public class test
{
public static void main(String[] args) throws IOException
{
String string=new String("");
int hanzi=0;//统计汉字的个数
int zimu=0;//统计字母的个数
int kongge=0;//统计空格的个数
int shuzi=0;//统计数字的个数
int qita=0;
System.out.println("请输入一行字符:");
//下面两行代码的意思是:第一行:先将字符串放到缓冲区里面
// 第二行:然后将缓冲区的字符串赋给string,这样string就等于我们刚才输入的字符串
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
string=br.readLine();
byte[] bytes=string.getBytes();
for(int i=0;i<bytes.length;i++)
{
//System.out.println(bytes[i]);
if((bytes[i]>=65&&bytes[i]<=90)||(bytes[i]>=97&&bytes[i]<=122)) zimu++;
else if(bytes[i]==32) kongge++;
else if(bytes[i]>=48&&bytes[i]<=57) shuzi++;
else if(bytes[i]<0) hanzi++;
else qita++;
}
System.out.println(zimu);
System.out.println(hanzi/3);
System.out.println(kongge);
System.out.println(shuzi);
System.out.println(qita);
// 最终的输入输出如下:
// java真是太棒了!! wotaixihuanle 123456
// 17
// 5
// 4
// 6
// 2
}
}