IO---字符缓冲流

 

BufferedReader(reader r):  可以传入FileReader对象作为参数,也可以传入InputStreamreader最为对象

BufferedWriter(Writer w):  .....

public class bufferread {
    public static void main(String[] args) throws IOException {
        
        
        FileWriter fw = new FileWriter("java.txt");
        BufferedWriter bw = new BufferedWriter(fw);
        
        bw.write("a");
        bw.close();
        
        //其他的类似
    }
}

字符缓冲流特有功能

BufferedWriter:

    void  newline()  写一个行分隔符,行分隔符字符串由系统属性定义

BufferedReader:

  public String readline() 读一行文字。结果包含行的内容的字符串,不包括换行符,读到流的结尾返回null,循环读的时候用是否为null来判断终止情况

bw.write("a");
bw.newLine();//实现换行功能

 

字符流复制文件-----最常用的方法

public class bufferread {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(
                new FileReader(".\\collections.txt"));

        FileWriter fw = new FileWriter("java.txt");
        BufferedWriter bw = new BufferedWriter(fw);

        String line ;
        while ((line = br.readLine()) != null ){
            bw.write(line); 
            bw.newLine();  // 因为行里面已经不包括换行符了;
            bw.flush();
        }

        bw.close();
        br.close();
        //其他的类似
    }
}
public class treeset {
    public static void main(String[] args) throws IOException {


        //定义学生集合,并通过比较器排序
        TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //排序规则
                int num = o2.getsum() - o1.getsum();
                int num2 = num == 0 ? o1.getChinesescore() - o2.getChinesescore() : num;
                int num3 = num2 == 0 ? o1.getMathscore() - o2.getMathscore() : num2;
                int num4 = num3 == 0 ? o1.getName().compareTo(o2.getName()) : num3;
                return num4;
            }
        });

        //键盘录入学生信息
        for (int i = 0; i < 3; i++) {
            Scanner sc = new Scanner(System.in);
            System.out.println("name");
            String name = sc.nextLine();

            System.out.println("chinesescore");
            int chinesescore = sc.nextInt();

            System.out.println("englishscore");
            int englishscore = sc.nextInt();

            System.out.println("mathscore");
            int mathhscore = sc.nextInt();

            Student s1 = new Student(name, chinesescore, mathhscore, englishscore);

            ts.add(s1);

        }

        //创建字符缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("java.txt"));
        for (Student s : ts) {
            StringBuilder sb = new StringBuilder();
            sb.append(s.getName()).append(",").append(s.getChinesescore()).append(",").
                    append(s.getMathscore()).append(",").append(s.getEnglishscore()).append(",").
                    append(s.getsum());
            bw.write(sb.toString());
            bw.write("\r\n");
            bw.flush();
        }
        bw.close();


    }
}

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero _s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值