FileOutputStream

螺旋小蜗 2014-08-09 11:24:29
为什么一下两段代码效果一样,哪位高手给解释一下

String filename="C://Users//Administrator//Desktop//极速传输//1.script";
File file=new File(filename);
try {
PrintStream printStream = new PrintStream(file);
System.setOut(printStream);
} catch (FileNotFoundException e) {

e.printStackTrace();
}
String filename="C://Users//Administrator//Desktop//极速传输//1.script";
File file=new File(filename);
FileOutputStream fileOutputStream;
try {
fileOutputStream = new FileOutputStream(file);
PrintStream printStream = new PrintStream(fileOutputStream);
System.setOut(printStream);
} catch (FileNotFoundException e) {

e.printStackTrace();
}
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KJZL 2014-08-09
  • 打赏
  • 举报
回复
效果一样,但实现的方式和效率不一样,一个是用打印流传输文件,一个是用文件输出流传输文件。
百里马 2014-08-09
  • 打赏
  • 举报
回复
引用 5 楼 chsunnyboy 的回复:
楼上最后的私有方法是什么意思啊 private PrintStream(boolean autoFlush, OutputStream out) { super(out); this.autoFlush = autoFlush; this.charOut = new OutputStreamWriter(this); this.textOut = new BufferedWriter(charOut); }
这个才是真正的构造方法,被私有化的 对外提供的构造方法,最后都是通过这个方法来初始化的
螺旋小蜗 2014-08-09
  • 打赏
  • 举报
回复
楼上最后的私有方法是什么意思啊 private PrintStream(boolean autoFlush, OutputStream out) { super(out); this.autoFlush = autoFlush; this.charOut = new OutputStreamWriter(this); this.textOut = new BufferedWriter(charOut); }
百里马 2014-08-09
  • 打赏
  • 举报
回复

    public PrintStream(File file) throws FileNotFoundException {
        this(false, new FileOutputStream(file));
    }

    public PrintStream(OutputStream out) {
        this(out, false);
    }

    public PrintStream(OutputStream out, boolean autoFlush) {
        this(autoFlush, requireNonNull(out, "Null output stream"));
    }

    private PrintStream(boolean autoFlush, OutputStream out) {
        super(out);
        this.autoFlush = autoFlush;
        this.charOut = new OutputStreamWriter(this);
        this.textOut = new BufferedWriter(charOut);
    }
两者确实一样,因为你传file进去,它内部也会创建一个FileOutputStream
zhjdg 2014-08-09
  • 打赏
  • 举报
回复
看源代码就知道。 最终差别就在boolean autoFlush 第一true 第二false
private PrintStream(boolean autoFlush, OutputStream out) {
        super(out);
        this.autoFlush = autoFlush;
        this.charOut = new OutputStreamWriter(this);
        this.textOut = new BufferedWriter(charOut);
    }
光伏储能虚拟同步发电机VSG并网仿真模型(Similink仿真实现)内容概要:本文档介绍了光伏储能虚拟同步发电机(VSG)并网仿真模型的Simulink实现方法,重点在于通过建立光伏储能系统与虚拟同步发电机相结合的仿真模型,模拟其在并网过程中的动态响应与控制特性。该模型借鉴了同步发电机的惯性和阻尼特性,提升了新能源并网系统的频率和电压支撑能力,增强了系统的稳定性与可控性。文档还提及相关电力系统仿真技术的应用,包括逆变器控制、储能配置、并网稳定性分析等,并提供了完整的Simulink仿真文件及技术支持资源链接,便于科研人员复现与二次开发。; 适合人群:电气工程、自动化、能源系统等相关专业的研究生、科研人员及从事新能源并网技术开发的工程师。; 使用场景及目标:①用于研究光伏储能系统在弱电网条件下的并网稳定性问题;②掌握虚拟同步发电机(VSG)控制策略的设计与仿真方法;③支持高水平论文(如EI/SCI)的模型复现与创新研究;④为微电网、智能电网中的分布式能源接入提供技术参考。; 阅读建议:建议结合提供的Simulink模型文件与文档说明逐步操作,重点关注VSG控制模块的参数设置与动态响应分析,同时可延伸学习文中提及的MPPT、储能管理、谐波分析等相关技术,以提升综合仿真能力。

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧