一、今日学习内容:
1、缓冲流:缓冲流的原理是将数据先缓冲起来,然后一起写入或读取出来,使用缓冲流读写文件非常高效,常用的缓冲流有以下几种: BufferedReader. BufferedWriter. BufferedInputStream和BufferedOuputStream。
BufferedReader 与BufferedWriter比较:
BufferedReader属于字符流,如果要想使用BufferedReader就需要将一个字节流变成字符流,为了解决这样的问题,在Java中提供了以下两个转换类。
1) InputStreamReader
2)OutputStreamWriter
注:在BufferedReader类中提供了一个专门的读取操作。
(2)BufferedInputStream 与BufferedOuputStream
使用BufferedInputStream 和BufferedOutputStream 通常用来读取或写入影像数据。
2.Scanner类:
(1)简单来说,Scanner就是用来获取用户在控制台输入的字符串,也可以获取一个文件中的字符串。
(2)官方点的话来说就是:java.util.Scanner 是 Java5 的特征,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
使用方法:
使用不同的 next 方法将得到的标记转换为不同类型的值,比如说要从获控制台取一个输入字符串中的int类型的数字,使用nextInt。
-
Scanner sc = new Scanner(System.in);
-
int i = sc.nextInt();
如果需要从一个名文为numbers件中去获取long
类型的数字。
-
Scanner sc = new Scanner(new File("numbers"));
-
while (sc.hasNextLong()) {
-
long longNumber = sc.nextLong();
-
}获取指定内容:
比如删去字符串 : 1 fish 2 fish red fish blue fish 中的 fish和空格。
-
String input = "1 fish 2 fish red fish blue fish";
-
// 使用正则匹配的方式获取想要的内容
-
Scanner s = new Scanner(input).useDelimiter("\s*fish\s*");
-
System.out.println(s.nextInt());
-
System.out.println(s.nextInt());
-
System.out.println(s.next());
-
System.out.println(s.next());
-
// 打开文件之后切记要关闭
-
s.close();实例:
-
public static void main( String[] args )
-
{
-
if(args!=null){
-
println("命令行参数:");
-
for(String s:args){
-
println(s);
-
}
-
}
-
Scanner input = new Scanner(System.in);
-
print( "input x exist。" );
-
String str = null ;
-
do{
-
println("");
-
print(":");
-
str = input.next();
-
System.out.println("您输入的是:"+str);
-
}while(!"x".equalsIgnoreCase(str));
-
System.out.println("你输入了"x",程序已经退出!");
-
input.close(); // 关闭资源
-
}
-
-
public static void println(String msg){
-
System.out.println( msg );
-
}
-
-
public static void print(String msg){
-
System.out.print( msg );
-
}
二、遇到的问题:
Scanner类的代码尝试不理解。
三、明日计划:
继续学习第十二章的内容。