Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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 - Fatal编程技术网

Java 从不同方法写入同一文件

Java 从不同方法写入同一文件,java,file,Java,File,我一直在用Java处理文件。我还知道读写文件的基本知识。下面是我试图编写的代码 void qlm(String option,String initiate,String ii,String file_path,String source,List destination){ //,String paths,String src){ String [] Ln = {"B","C","D"}; int count =1, counter=1,seq=1; try{

我一直在用Java处理文件。我还知道读写文件的基本知识。下面是我试图编写的代码

    void qlm(String option,String initiate,String ii,String file_path,String source,List destination){ //,String paths,String src){
    String [] Ln = {"B","C","D"};
    int count =1, counter=1,seq=1;
    try{
        System.out.println("Here: " +file_path);
        PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB()),true);
        for(int i=0;i<Ln.length;i++){
            pwr.println("Sequence_Number" + "|" + "QLM_Operation" + "|" + "II_D" + "|" + "Val_D" + "|" + "List" + "|" + "Type" + "|" + "Status" + "|" + "Source" + "|" + "Destination");
            pwr.println(count + "|" + option + "|" + "DataK" + "|" + "Value" + "|" + Ln + "|" + "Null" + "|" + "Pending" + "|" + source + "|" + Ln[i]);
            count++;
         }
        pwr.close();
void qlm(字符串选项、字符串初始化、字符串ii、字符串文件路径、字符串源、列表目标){//、字符串路径、字符串src){
字符串[]Ln={“B”,“C”,“D”};
整数计数=1,计数器=1,序列=1;
试一试{
System.out.println(“此处:+文件路径);
PrintWriter pwr=new PrintWriter(new FileWriter(getHandleB()),true);

对于(int i=0;i您没有追加到文件。请使用允许追加的FileWriter构造函数,该构造函数的第二个参数为boolean/true

PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB(), true),true);

编辑
分离上面代码中的构造函数调用将有助于您了解发生了什么:

FileWriter fileWriter = new FileWriter(getHandleB(), true);
PrintWriter pwr = new PrintWriter(fileWriter, true);

因此您可以看到,是的,这里使用了两个布尔参数,但它们与不同的构造函数一起使用。

您没有向文件追加。请使用允许追加的FileWriter构造函数,该构造函数的第二个参数为boolean/true

PrintWriter pwr = new PrintWriter(new FileWriter(getHandleB(), true),true);

编辑
分离上面代码中的构造函数调用将有助于您了解发生了什么:

FileWriter fileWriter = new FileWriter(getHandleB(), true);
PrintWriter pwr = new PrintWriter(fileWriter, true);
您可以看到,是的,这里使用了两个布尔参数,但是它们与不同的构造函数一起使用。

您需要使用with
true
作为第二个参数

默认情况下,
FileWriter
会截断它打开的文件。

您需要使用with
true
作为第二个参数



默认情况下,
FileWriter
会截断它打开的文件。

你比我快。在发布答案之前搜索链接时会出现这种情况:不管怎样,这个问题应该并且将作为重复项关闭。@hovercraftfullofels我已经使用布尔值/true作为第二个参数。你可以找到上面的代码。我正在尝试写入同一个文件而不从不同的函数中删除。@MohammedIrfan:您的代码有一个布尔值,但不在
FileWriter
构造函数中。请再次仔细查看构造函数调用:
newFileWriter(getHandleB())这是避免过度使用嵌套代码的一个原因。请考虑在不同的行上调用构造函数,您会更清楚地看到它。@ MohammedIrfan是为<代码> PintWriter < /代码>所做的,但不是针对<代码>文件编写器>代码>,它可能在重复的问题中出现,在这里和我在FI中提供的链接中注意到。rst对此答案发表评论。你比我快。在发布答案之前搜索链接时会出现这种情况:无论如何,此问题应该并且将作为重复项关闭。@HoverCraftFullOfels我已使用布尔值/true作为第二个参数。你可以找到上面的代码。我正在尝试写入同一个文件,而不删除from个不同的函数。@MohammedIrfan:您的代码有一个布尔值,但不在
FileWriter
构造函数中。请再次仔细查看构造函数调用:
newFileWriter(getHandleB())这是避免过度使用嵌套代码的一个原因。请考虑在不同的行上调用构造函数,您会更清楚地看到它。@ MohammedIrfan是为<代码> PintWriter < /代码>所做的,但不是针对<代码>文件编写器>代码>,它可能在重复的问题中出现,在这里和我在FI中提供的链接中注意到。重新评论这个答案。1+伟人思想相似。1+伟人思想相似。@BheshGurung我确实看到了这一点,但我无法解决我的问题。所以我不得不发布它。谢谢。@MohammedIrfan,然后下次仔细阅读答案并查看代码的差异,以避免发布重复的问题。-1回答问题。我的错。我只是想使用堆栈溢出进行rted:(@BheshGurung我确实看到了这一点,但我无法解决我的问题。因此我不得不发布它。谢谢。@MohammedIrfan,然后下次仔细阅读答案并查看与代码的差异,以避免发布重复的问题。-1为问题。我的错。我刚开始使用堆栈溢出:(