Java PrintWriter输出文件不存在,尽管没有引发异常
我刚刚开始学习Java,我遇到了以下几个问题,我已经为此苦苦挣扎了几个小时。我想使用Java PrintWriter输出文件不存在,尽管没有引发异常,java,text-files,printwriter,Java,Text Files,Printwriter,我刚刚开始学习Java,我遇到了以下几个问题,我已经为此苦苦挣扎了几个小时。我想使用PrintWriter生成一个简单的文本文件 我没有得到任何运行时异常,但文件仍没有出现在指定的目录中 public class Main { public static void main(String[] args) { try (final PrintWriter writer = new PrintWriter( new File("c:\test\
PrintWriter
生成一个简单的文本文件
我没有得到任何运行时异常,但文件仍没有出现在指定的目录中
public class Main {
public static void main(String[] args) {
try (final PrintWriter writer = new PrintWriter(
new File("c:\test\new\notes.txt"))) {
writer.write("Test note");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
我做错了什么?
\
表示转义字符,因此需要对文本反斜杠字符本身进行转义。您还可以使用/
,Java将为平台解析正确的分隔字符
try (final PrintWriter writer = new PrintWriter("c:\\test\new\\notes.txt")) {
\
表示转义字符,因此需要对文字反斜杠字符本身进行转义。您还可以使用/
,Java将为平台解析正确的分隔字符
try (final PrintWriter writer = new PrintWriter("c:\\test\new\\notes.txt")) {
\
表示转义字符,因此需要对文字反斜杠字符本身进行转义。您还可以使用/
,Java将为平台解析正确的分隔字符
try (final PrintWriter writer = new PrintWriter("c:\\test\new\\notes.txt")) {
\
表示转义字符,因此需要对文字反斜杠字符本身进行转义。您还可以使用/
,Java将为平台解析正确的分隔字符
try (final PrintWriter writer = new PrintWriter("c:\\test\new\\notes.txt")) {
在
writer.write.write(“测试说明”)
之后添加writer.flush()
,并对Windows路径使用双反斜杠(如其他答案所建议)。在writer.write(“测试说明”)
之后添加writer.flush()
,并对Windows路径使用双反斜杠(如其他答案所建议).在编写器之后添加writer.flush()
。编写(“测试说明”)
,并对Windows路径使用双反斜杠(正如其他答案所建议的)。在编写器之后添加writer.flush()
,并对Windows路径使用双反斜杠(正如其他答案所建议的那样).正如Reimeus所说,\
是java中的转义字符。
这意味着包含“\n”
或“\t”
的字符串不代表stringliteral\n或\t
'\n'
表示换行符,'\t'
表示制表符
为了更好地理解,请使用以下代码:
System.out.println("c:\test\new\notes.txt");
不会将c:\test\new\notes.txt打印到控制台,它会打印
c: est
ew
otes.txt
到控制台去
要能够在字符串中写入反斜杠,您需要使用'\\'
正如Reimeus所说,\
是java中的转义字符。
这意味着包含“\n”
或“\t”
的字符串不代表stringliteral\n或\t
'\n'
表示换行符,'\t'
表示制表符
为了更好地理解,请使用以下代码:
System.out.println("c:\test\new\notes.txt");
不会将c:\test\new\notes.txt打印到控制台,它会打印
c: est
ew
otes.txt
到控制台去
要能够在字符串中写入反斜杠,您需要使用'\\'
正如Reimeus所说,\
是java中的转义字符。
这意味着包含“\n”
或“\t”
的字符串不代表stringliteral\n或\t
'\n'
表示换行符,'\t'
表示制表符
为了更好地理解,请使用以下代码:
System.out.println("c:\test\new\notes.txt");
不会将c:\test\new\notes.txt打印到控制台,它会打印
c: est
ew
otes.txt
到控制台去
要能够在字符串中写入反斜杠,您需要使用'\\'
正如Reimeus所说,\
是java中的转义字符。
这意味着包含“\n”
或“\t”
的字符串不代表stringliteral\n或\t
'\n'
表示换行符,'\t'
表示制表符
为了更好地理解,请使用以下代码:
System.out.println("c:\test\new\notes.txt");
不会将c:\test\new\notes.txt打印到控制台,它会打印
c: est
ew
otes.txt
到控制台去
要能够在字符串中写入反斜杠,您需要使用'\\'
我认为你的问题有两个部分:
为什么代码不起作用
为什么没有抛出异常
第一个问题已经得到了回答,但我认为第二个问题的答案至少同样重要,因为如果写入文件时出现任何问题,您当前的代码仍然会无声地失败
从PrintWriter()的文档中:
此类中的方法从不抛出I/O异常,尽管有些
建设者可以。客户可询问是否存在任何错误
调用checkError()时发生
因此,每次调用PrintWriter方法后都必须调用checkerror()
,否则您的代码将不可靠。我认为您的问题有两个部分:
为什么代码不起作用
为什么没有抛出异常
第一个问题已经得到了回答,但我认为第二个问题的答案至少同样重要,因为如果写入文件时出现任何问题,您当前的代码仍然会无声地失败
从PrintWriter()的文档中:
此类中的方法从不抛出I/O异常,尽管有些
建设者可以。客户可询问是否存在任何错误
调用checkError()时发生
因此,每次调用PrintWriter方法后都必须调用checkerror()
,否则您的代码将不可靠。我认为您的问题有两个部分:
为什么代码不起作用
为什么没有抛出异常
第一个问题已经得到了回答,但我认为第二个问题的答案至少同样重要,因为如果写入fi时出现任何问题,您当前的代码仍然会无声地失败