用Java创建新行';s文件编写器
我已经编写了以下用Java创建新行';s文件编写器,java,io,filewriter,Java,Io,Filewriter,我已经编写了以下文件编写器: try { FileWriter writer = new FileWriter(new File("file.txt"), false); String sizeX = jTextField1.getText(); String sizeY = jTextField2.getText(); writer.write(sizeX); writer.write(sizeY); writer.flush();
文件编写器:
try {
FileWriter writer = new FileWriter(new File("file.txt"), false);
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
writer.write(sizeX);
writer.write(sizeY);
writer.flush();
writer.close();
} catch (IOException ex) {}
BufferedWriter bw = new BufferedWriter(writer);
bw.newLine();
现在我想插入一个新行,就像您通常使用\n
那样,但它似乎不起作用
如何解决这个问题
谢谢。试试:
String.format("%n");
有关更多详细信息,请参阅。尝试将文件编写器
包装在缓冲编写器
中:
try {
FileWriter writer = new FileWriter(new File("file.txt"), false);
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
writer.write(sizeX);
writer.write(sizeY);
writer.flush();
writer.close();
} catch (IOException ex) {}
BufferedWriter bw = new BufferedWriter(writer);
bw.newLine();
BufferedWriter的Javadocs。如果您想获取当前操作系统中使用的新行字符,如Windows的\r\n
,可以通过
System.getProperty(“line.separator”)代码>
- 自Java7
System.lineSeparator()以来
- 或者如Stewart所述,通过
String.format(“%n”)生成它们代码>
您还可以使用PrintStream
及其println
方法,该方法将自动在字符串末尾添加操作系统相关的行分隔符
PrintStream fileStream = new PrintStream(new File("file.txt"));
fileStream.println("your data");
// ^^^^^^^ will add OS line separator after data
(顺便说一句,System.out也是PrintStream的实例)。尝试System.getProperty(“line.separator”)
我会这样处理这个问题:
BufferedWriter output;
output = new BufferedWriter(new FileWriter("file.txt", true));
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
output.append(sizeX);
output.append(sizeY);
output.newLine();
output.close();
FileWriter构造函数中的true允许追加。
方法newLine()由BufferedWriter提供
可以作为解决方案吗?如果您的意思是使用相同的代码,但添加新行,以便在文件中添加内容时,它将位于新行。您只需使用BufferedWriter的newLine()
这里我还改进了您的代码:NumberFormatException是不必要的,因为没有任何内容被强制转换为数字数据类型,保存变量以供使用也是不必要的
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"));
writer.write(jTextField1.getText());
writer.write(jTextField2.getText());
writer.newLine();
writer.flush();
writer.close();
} catch (IOException ex) {
System.out.println("File could not be created");
}
这里的“\n”也可以正常工作。但这里的问题在于文本编辑器(可能是记事本)。尝试使用写字板查看输出。从1.8开始,我认为这可能是一个值得添加到响应中的附加解决方案:
Path java.nio.file.Files.write(路径路径、Iterable行、OpenOption…选项)引发IOException
如果追加到同一个文件,可能会对Files.write()使用追加标志
可以使用包装文件编写器
,因为它还有许多其他有用的方法
try(PrintWriter pw = new PrintWriter(new FileWriter(new File("file.txt"), false))){
pw.println();//new line
pw.print("text");//print without new line
pw.println(10);//print with new line
pw.printf("%2.f", 0.567);//print double to 2 decimal places (without new line)
}
writer.write(“\n”)
但它似乎不起作用
你能发布你得到的结果吗?如果我尝试“\n”方法,没有什么。。。只有1254个(12个代表sizeX,54个代表sizeY).@lukulus你能试试writer.write(“\r\n”)
或更好的writer.write(System.lineSeparator())
?不要将问题编辑为.Smart-one!为我工作,应该为任务工作。但是,对于一个项目,应该使用上述任何突出显示的方法,记事本不适用于/n
,但写字板适用于/n
。或者需要为记事本使用line.separator
。
try(PrintWriter pw = new PrintWriter(new FileWriter(new File("file.txt"), false))){
pw.println();//new line
pw.print("text");//print without new line
pw.println(10);//print with new line
pw.printf("%2.f", 0.567);//print double to 2 decimal places (without new line)
}