想提问一下append(true)

想提问一下append(true)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class Buffered2 {
 
    public static void main(String[] args) {
        try {
            FileOutputStream b1=new FileOutputStream("one.txt");
            BufferedOutputStream b2=new BufferedOutputStream(new FileOutputStream("two.txt"));
            long a=System.currentTimeMillis();
            StringBuilder str=new StringBuilder();
            for(int i=0;i<100000;i++) {
                b1.write(i);
                str.append(true);
            }
            long b=System.currentTimeMillis();
            b1.close();
            for(int i=0;i<100000;i++) {
                b2.write(i);
                str.append(true);
            }
            long c=System.currentTimeMillis();
            b2.flush();
            b2.close();
            System.out.println("one不使用缓冲流来写\n用时为:"+(b-a));
            System.out.println("two使用缓存流来写\n用时为:"+(c-b)+"\n用缓冲流来写节省了"+((b-a)-(c-b))+"ms");
             
        catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        catch (IOException e) {
            e.printStackTrace();
        }
    }
 
}

append(true)怎么使用呀 我感觉我这个瞎弄的起不到作用 另外为什么生成的txt是乱码 求解 谢谢啦~

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
杨勤_cd 2018-07-30 19:20:46

@MillerX 但是如果把这个构造方法加在for循环里面,就需要加上这个append参数了,像这样:

http://img1.sycdn.imooc.com//climg/5b5ef4580001af3510880400.jpg

irista23 2018-07-16 19:10:55

这里考察的不是调用StringBuilder的append(true),是使用FileOutputStream构造方法创建一个FileOutputStream对象时,在构造方法的的第二个参数传true,这样达到追加内容的效果,另外打开乱码因为编码问题是正常的。

  • 这个地方,我试了试,不加append好像也能实现功能啊。那这里加append有什么意义?
    2018-07-28 11:39:54
  • https://class.imooc.com/course/qadetail/53075 同学可以参考一下这个问答,希望可以帮到你。
    2018-07-28 15:32:33
  • 使用FileOutputStream的构造方法创建对象的时候,无论后面加不加true,对这道题来说都是一样的效果(因为只有一个输出流,循环输入数据的时候都是使用的这个输出流),但是如果执行多次程序(每次都有一个输出流了),加了true的就可以一直在后面追加内容,如果每次输入1w个字符的话,加true后每次执行完就会变成10000个字符,20000个字符,30000个字符~
    2018-07-30 19:05:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码