Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在文件中存储字符串输入_Java_Filewriter_Bufferedwriter - Fatal编程技术网

Java 在文件中存储字符串输入

Java 在文件中存储字符串输入,java,filewriter,bufferedwriter,Java,Filewriter,Bufferedwriter,好的,在有人因为问“愚蠢的”问题而责骂我之前,请注意,我已经用尽了我所知道的所有其他选择,而且空手而归。不过,如果你愿意,请继续投票/报告这个问题 现在,对于那些关心 我试图从用户那里获取一个字符串输入,并将其存储到将在当前工作目录中创建的文件Text.txt中 下面是代码 我的问题是,文件在正确的目的地生成,但总是空的。我已经在多个JDK版本和不同的机器上试用过。仍然获得空白文本文件。 请告诉我,我做错了什么。您没有用BufferedWriter关闭.close()(它将刷新最后一个缓冲区并关

好的,在有人因为问“愚蠢的”问题而责骂我之前,请注意,我已经用尽了我所知道的所有其他选择,而且空手而归。不过,如果你愿意,请继续投票/报告这个问题

现在,对于那些
关心

我试图从用户那里获取一个
字符串
输入,并将其存储到将在当前工作目录中创建的文件Text.txt

下面是代码

我的问题是,文件在正确的目的地生成,但总是空的。我已经在多个JDK版本和不同的机器上试用过。仍然获得空白文本文件。


请告诉我,我做错了什么。

您没有用BufferedWriter关闭
.close()
(它将刷新最后一个缓冲区并关闭文件)

但是,您可以以新的方式执行该任务:

    Files.write(Paths.get(".\\Text.txt"),
                Arrays.asList(new Scanner(System.in).nextLine()),
                Charset.defaultCharset());

否则,您需要引入一个变量,而单行程序就不复存在了。

我对您的代码进行了一些修改,使其正常工作

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;


public class Encryption {

    public static void main(String[] args) throws Exception {

        System.out.println("Enter a String you wish to encrypt : ");
        String text = new Scanner(System.in).nextLine();
        BufferedWriter b = new BufferedWriter(new FileWriter(".\\Text.txt"));
        b.write(text);
        b.close();
        System.out.println("Done");
    }
}

您尝试过的其他选项有哪些?在编写此类OneLiner之前,请将它们分解为一次一个函数调用,并记录结果,以便您了解自己在做什么。PrintWriter和BufferedWriter是我知道的两种方法,尝试过它们,在操作中没有区别,即将尝试序列化(我知道这是错误的,但我什么都没有留下)很好,用
.close()
获得了它。我没有意识到生成op时必须使用
.close()
。我只是想,通过不编写
.close()
,我将把资源清理留给
gc()
。非常感谢。真的很感激
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;


public class Encryption {

    public static void main(String[] args) throws Exception {

        System.out.println("Enter a String you wish to encrypt : ");
        String text = new Scanner(System.in).nextLine();
        BufferedWriter b = new BufferedWriter(new FileWriter(".\\Text.txt"));
        b.write(text);
        b.close();
        System.out.println("Done");
    }
}