Day01 Java中级02 IO输入输出流,常见文件操作

01 I/O缓存流

1. 用到了之前学的StringBuffer,有些忘记了   

        String str1 = "let there "; //创建一个字符串
        StringBuffer sb = new StringBuffer(str1);  //根据str1创建一个StringBuffer对象

        StringBuffer sb = new StringBuffer(); //也可以创建一个无参的StringBuffer对象
        sb.append("be light");  //在最后追加
        sb.delete(4, 10); //删除4-10之间的字符
        sb.insert(4, "there "); //在4这个位置插入 there
        sb.reverse(); //反转
         

  2. 练习-移除注释

package j2se2.io02;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.PrintWriter;

//要在通过BuffedReader 读取完数据后,才能建立Printwriter,
//因为创建输出流的时候,会把目标文件内容清空

public class BufferedTest01 {
	
	public static void removeComments(File javaFile){
		StringBuffer sb = new StringBuffer();    //创建一个字符串变量
		
		//JDK1.7新特性,可以在try的()写输入或输出流,会自动关闭流
		try(
			FileReader fr = new FileReader(javaFile); //创建一个字符输入流
			BufferedReader br= new BufferedReader(fr) //创建一个缓存字符输入流
		){
			while(true){
				String line = br.readLine(); //创建一个字符串接收输入流每行内容
				if(null == line) //当有一行为空时读取结束
					break;
				if(!line.trim().startsWith("//")){ //每行去掉首位空格,然后看是否以//开头
					sb.append(line).append("\r\n"); //不是的话,就存到sb中,然后回车换行
				}
			}
		}catch(IOException e){
			e.printStackTrace();
		}
		try(
			FileWriter fw = new FileWriter(javaFile); //创建一个字符输出流
			PrintWriter pw = new PrintWriter(fw); //创建一个缓存字符输出流
		){
			pw.write(sb.toString()); //写出内容
		}catch(IOException e){
			e.printStackTrace();
		}
	}
	
	
	
	public static void main(String[] args) {
            File javaFile = new File("d:");
            System.out.println(javaFile.exists());
            System.out.println(javaFile.length());
            removeComments(javaFile);
	}
}

3.流关系
     3.1.流分为字节流和字符流   
     3.2 字节流下面常用的又有数据流和对象流  
     3.3字符流下面常用的又有缓存流

  常用的16个流:

        FileInputStream,FileOutputStream,FileReader,FileWriter.

        BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter.

        DataInputStream,DataOutPutStream,

        ObjectInputStream,ObjectOutputStream

        InputStreamReader,OutputStreamWriter.

        PrintWriter,PrintStream.

4.遇到数组,记录常用方法
       import java.util.Arrays;
                数组复制     copyOfRange(a,1,2);     // a代表源数组,1代表复制起始位置,2代表结束位置,[1,2)
                转换成字符串     toString(a);             // 把数组a转换成字符串
                排序            sort(a);                           // 将a数组进行排序
                搜索            binarySearch(a,23)        // 必须先经过sort排序,找出a数组中23的下标
                填充            fill(a,1)                            // 使用1将数组填满


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值