实习日记 java之IO流

1.Scanner

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
基本语法
Scanner scanner = new Scanner(System.in);
scanner.next(); //获取输入的数据方式一
scanner.nextLine();//获取输入的数据方式二

next() 与 nextLine() 区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():

1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符
2、可以获得空白。

2.IOStream

1.InputStream、OutputStream
处理字节流的抽象类
InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.
OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等
2.InputStreamReader OutputStreamWriter
处理字符流的抽象类
InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流.
OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流.
3.BufferedReader BufferedWriter
BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,readLine读取一个文本行,
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
BufferedWriter 由Writer 类扩展而来,提供通用的缓冲方式文本写入, newLine使用平台自己的行分隔符,
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
InputStream能从來源处读取一個一個byte,
所以它是最低级的,

InputStreamReader
InputStreamReader封裝了InputStream在里头,
它以较高级的方式,一次读取一个一个字符,

BufferedReader
BufferedReader则是比InputStreamReader更高级,
它封裝了StreamReader类,一次读取取一行的字符

3.创建目录与文件

//指定路径
        String filePath="D:/temp";
        File dir = new File(filePath);
        if (!dir.exists()){
        //判断是否该目录是否已经存在
            dir.mkdirs();//创建
        }
        //指定文件名
        File file = new File(filePath + "/input.txt");
        if (!file.exists()){
        //判断该txt文件是否存在
            file.createNewFile();//创建
        }

4.文件写入FileWriter

  FileWriter writer = null;
        writer = new FileWriter(file, true);  //true设置
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        System.out.println("姓名:");
        String name =bufferedReader.readLine();
        System.out.println("电话:");
        String phone =bufferedReader.readLine();
        writer.append(name+",");
        writer.append(phone+"\r\n");

FileWriter(File file)
在给出 File 对象的情况下构造一个 FileWriter 对象。
FileWriter(File file, boolean append)
参数:
file:要写入数据的 File 对象。
append:如果 append 参数为 true,则将字节写入文件末尾处,相当于追加信息。如果 append 参数为 false, 则写入文件开始处。

5.正则匹配机制

 System.out.println("请输入要查找的联系人姓名:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.next();
            FileReader fileReader = new FileReader("d:/temp/input.txt");
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String line=null;
            while ((line = bufferedReader.readLine()) != null) {
                Pattern compile = Pattern.compile(name);
                Matcher matcher = compile.matcher(line);
                boolean matches = matcher.find();
                if (matches==true){
                    System.out.println(line);
                    break;
                }
            }

matches:整个匹配,只有bai整个字符序列完全匹du配成功,才返回zhiTrue,否则返回False。但如果前部分匹配成功,将移动下次匹dao配的位置。
lookingAt:部分匹配,总是从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配。
find:部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。 适用于对文件进行模糊查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值