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");
}
}