Java 将订单字符串写入文本文件
这只是在文本文件中写入“测试2”。 如何写入文本文件中的第一行是“测试1”,第二行是“测试2”Java 将订单字符串写入文本文件,java,file,fileoutputstream,bufferedwriter,Java,File,Fileoutputstream,Bufferedwriter,这只是在文本文件中写入“测试2”。 如何写入文本文件中的第一行是“测试1”,第二行是“测试2” if(s1.equals("test 1")&&s2.equals("test 2")){ WriteNameOrderInFile.nameOfFirstOrderForImage(s1); WriteNameOrderInFile.nameOfSecondOrderForImage(s2); WriteNameOrd
if(s1.equals("test 1")&&s2.equals("test 2")){
WriteNameOrderInFile.nameOfFirstOrderForImage(s1);
WriteNameOrderInFile.nameOfSecondOrderForImage(s2);
WriteNameOrderInFile类:
即使解决方案只是调用正确的方法,但以下是对代码的一些改进:
public class WriteNameOrderInFile {
public static void writeToFile(String text, boolean append) {
File file = new File("C:/append info.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file, append))) {
bw.write(text);
bw.newLine();
} catch (IOException e) {
// do some exception handling
System.err.println("Can't write to file!");
}
}
public static void main(String[] args) {
// just a sample call with the code you provided
String s1 = "test 1";
String s2 = "test 2";
if (s1.equals("test 1") && s2.equals("test 2")) {
writeToFile(s1, false); // boolean is false, so write (replace) text
writeToFile(s2, true); // append is true, so append text
}
}
}
对代码改进的一些解释:
- 您的两种方法仅在将文本写入文件和将文本追加到文件时有所不同。因此,考虑使用一个方法<代码> WruteFoels,并给出一个<强>追加< /强> -BooLea/LI>
<> LI>而不是<代码> OutPutsFrase和
FielOutPoStuts >考虑使用<代码>文件写入器< /C> > /LI> - 如果您使用的Java版本>=7,请使用try with资源语句。您可以轻松摆脱试图以良好方式关闭流的尝试
也不需要,因为它将在关闭文件时完成(try with resource语句完成的操作)BufferedWriter.flush()
nameOfFirstOrder
和nameOfSecondOrder
?请提供一个完整的工作代码示例。我真的很抱歉,你是对的,我调用了错误的方法。我疯了。很抱歉,谢谢你的改进
public class WriteNameOrderInFile {
public static void writeToFile(String text, boolean append) {
File file = new File("C:/append info.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file, append))) {
bw.write(text);
bw.newLine();
} catch (IOException e) {
// do some exception handling
System.err.println("Can't write to file!");
}
}
public static void main(String[] args) {
// just a sample call with the code you provided
String s1 = "test 1";
String s2 = "test 2";
if (s1.equals("test 1") && s2.equals("test 2")) {
writeToFile(s1, false); // boolean is false, so write (replace) text
writeToFile(s2, true); // append is true, so append text
}
}
}