Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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_File_Fileoutputstream_Bufferedwriter - Fatal编程技术网

Java 将订单字符串写入文本文件

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

这只是在文本文件中写入“测试2”。 如何写入文本文件中的第一行是“测试1”,第二行是“测试2”

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资源语句。您可以轻松摆脱试图以良好方式关闭流的尝试
  • BufferedWriter.flush()
    也不需要,因为它将在关闭文件时完成(try with resource语句完成的操作)

有什么问题?你有例外吗?我已经尝试过你的代码,它对我很有用(在一个新的主类中调用了这两个函数之后)。可能您必须调用正确的函数
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
        }
    }
}