Java FileWriter构造函数中的值。否则,它将简单地用新内容覆盖outfile(请参阅)

Java FileWriter构造函数中的值。否则,它将简单地用新内容覆盖outfile(请参阅),java,file-io,Java,File Io,PrintWriter writer2=新的PrintWriter(新文件编写器(“numbers.dat”,true) 正如Govan提到的,你并没有关闭writer2。这就是为什么您的文件是空白的。如果调用writer2.close,将调用BufferedWriter的“flush”方法。“flush”实际上是强制写入程序将数据写入文件() 正如Bharat提到的,您应该重新编写循环以使用“i”变量来编写,而不是sumeen。按照sumEven的编写方式,您将获得以下内容: i=1,sumE

PrintWriter writer2=新的PrintWriter(新文件编写器(“numbers.dat”,true

  • 正如Govan提到的,你并没有关闭writer2。这就是为什么您的文件是空白的。如果调用writer2.close,将调用BufferedWriter的“flush”方法。“flush”实际上是强制写入程序将数据写入文件()

  • 正如Bharat提到的,您应该重新编写循环以使用“i”变量来编写,而不是sumeen。按照sumEven的编写方式,您将获得以下内容:

    i=1,sumEven=sumEven+i+1=0+1+1=2

    i=3,sumEven=sumEven+i+1=2+3+1=6

    i=5,sumEven=sumEven+i+1=6+5+1=12

  • 有几件事:

  • 对于第二个writer(writer2),您需要在FileWriter构造函数中传递一个“true”值。否则,它将简单地用新内容覆盖outfile(请参阅)

    PrintWriter writer2=新的PrintWriter(新文件编写器(“numbers.dat”,true

  • 正如Govan提到的,你并没有关闭writer2。这就是为什么您的文件是空白的。如果调用writer2.close,将调用BufferedWriter的“flush”方法。“flush”实际上是强制写入程序将数据写入文件()

  • 正如Bharat提到的,您应该重新编写循环以使用“i”变量来编写,而不是sumeen。按照sumEven的编写方式,您将获得以下内容:

    i=1,sumEven=sumEven+i+1=0+1+1=2

    i=3,sumEven=sumEven+i+1=2+3+1=6

    i=5,sumEven=sumEven+i+1=6+5+1=12


  • 您的第一个循环可以是这样的

    for (i = 0; i < 100 ; i+2)
    { 
       if (i != 0) {
        writer.print(", ");
       } 
        writer.print(i+2);
    }   
    
    (i=0;i<100;i+2)的
    
    { 
    如果(i!=0){
    作者:印刷体(“,”);
    } 
    编印(i+2);
    }   
    
    第二个应该是这样的

    for (i = 0; i < 100 ; i+2)
    { 
        writer.print( ", " +(i+1));
    }   
    
    (i=0;i<100;i+2)的
    
    { 
    writer.print(“,”+(i+1));
    }   
    

    否则,您必须在行的末尾加一个逗号

    您的第一个循环可以是这样的

    for (i = 0; i < 100 ; i+2)
    { 
       if (i != 0) {
        writer.print(", ");
       } 
        writer.print(i+2);
    }   
    
    (i=0;i<100;i+2)的
    
    { 
    如果(i!=0){
    作者:印刷体(“,”);
    } 
    编印(i+2);
    }   
    
    第二个应该是这样的

    for (i = 0; i < 100 ; i+2)
    { 
        writer.print( ", " +(i+1));
    }   
    
    (i=0;i<100;i+2)的
    
    { 
    writer.print(“,”+(i+1));
    }   
    

    否则,您必须在行的末尾加一个逗号

    我对您的代码做了几处更改

    首先,你不需要两个作家,也不需要两个读者

    您的单个写入程序可以写入偶数和奇数,因为您只写入一个文件。我将考虑两个作者的场景是,如果你同时编写一个奇数文件和一个偶数文件,则

    不管怎么说,我只是把那些毛茸茸的东西注释掉了。如果删除所有注释,代码应该更简单、更有效,尤其是可读性更强

    import java.io.*;
        import java.util.*;
        public class TextFileIO {
            public static void main(String[] args) throws Exception {
                //Clear the contents of numbers.dat if already exists and populated
                File fileOne = new File("numbers.dat");
                fileOne.delete();
                File newFile = new File("numbers.dat");
                newFile.createNewFile();
                //Create writer object
                PrintWriter writer = new PrintWriter(new FileWriter("numbers.dat"));
                //Loop from 1 to 100
                for (int i = 1; i <= 100; i++) {
                    //If number is even, write to file  
                    if (i % 2 == 0) {
                        writer.print(i + ",");
                    }
                }
                //Close writer object.
                //writer.close();
                //Read from file
                //FileInputStream fileStream = new FileInputStream("numbers.dat");
                //DataInputStream in = new DataInputStream(fileStream);
                //BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                //Print line
                //System.out.println(reader.readLine());
                //reader.close();
                //Write all odd numbers to file
                //PrintWriter writer2 = new PrintWriter(new FileWriter("numbers.dat"));
                //Loop from 1 to 100
                for (int i = 1; i <= 100; i++) {
                    //If number is odd, write to file  
                    if (i % 2 == 1) {
                        writer.print(i + ",");
                    }
                }
                writer.close();
                //Read from file
                FileInputStream fileStream2 = new FileInputStream("numbers.dat");
                DataInputStream in2 = new DataInputStream(fileStream2);
                BufferedReader reader2 = new BufferedReader(new InputStreamReader(in2));
                //Print line
                System.out.println(reader2.readLine());
                reader2.close();
            }
    
    
        }
    
    import java.io.*;
    导入java.util.*;
    公共类TextFileIO{
    公共静态void main(字符串[]args)引发异常{
    //清除numbers.dat的内容(如果已存在并已填充)
    File fileOne=新文件(“numbers.dat”);
    fileOne.delete();
    File newFile=新文件(“numbers.dat”);
    createNewFile();
    //创建编写器对象
    PrintWriter writer=新的PrintWriter(新文件编写器(“numbers.dat”);
    //从1循环到100
    
    对于(inti=1;i我对代码做了一些更改

    首先,你不需要两个作家,也不需要两个读者

    <> P>你的一个作者可以写偶数和奇数,因为你只写一个文件。如果你同时写一个奇数文件和一个偶数文件,我会考虑两个作者。 不管怎么说,我只是注释掉了一些无关紧要的东西。如果删除所有注释,代码应该更简单、更有效,尤其是更可读

    import java.io.*;
        import java.util.*;
        public class TextFileIO {
            public static void main(String[] args) throws Exception {
                //Clear the contents of numbers.dat if already exists and populated
                File fileOne = new File("numbers.dat");
                fileOne.delete();
                File newFile = new File("numbers.dat");
                newFile.createNewFile();
                //Create writer object
                PrintWriter writer = new PrintWriter(new FileWriter("numbers.dat"));
                //Loop from 1 to 100
                for (int i = 1; i <= 100; i++) {
                    //If number is even, write to file  
                    if (i % 2 == 0) {
                        writer.print(i + ",");
                    }
                }
                //Close writer object.
                //writer.close();
                //Read from file
                //FileInputStream fileStream = new FileInputStream("numbers.dat");
                //DataInputStream in = new DataInputStream(fileStream);
                //BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                //Print line
                //System.out.println(reader.readLine());
                //reader.close();
                //Write all odd numbers to file
                //PrintWriter writer2 = new PrintWriter(new FileWriter("numbers.dat"));
                //Loop from 1 to 100
                for (int i = 1; i <= 100; i++) {
                    //If number is odd, write to file  
                    if (i % 2 == 1) {
                        writer.print(i + ",");
                    }
                }
                writer.close();
                //Read from file
                FileInputStream fileStream2 = new FileInputStream("numbers.dat");
                DataInputStream in2 = new DataInputStream(fileStream2);
                BufferedReader reader2 = new BufferedReader(new InputStreamReader(in2));
                //Print line
                System.out.println(reader2.readLine());
                reader2.close();
            }
    
    
        }
    
    import java.io.*;
    导入java.util.*;
    公共类TextFileIO{
    公共静态void main(字符串[]args)引发异常{
    //清除numbers.dat的内容(如果已存在并已填充)
    File fileOne=新文件(“numbers.dat”);
    fileOne.delete();
    File newFile=新文件(“numbers.dat”);
    createNewFile();
    //创建编写器对象
    PrintWriter writer=新的PrintWriter(新文件编写器(“numbers.dat”);
    //从1循环到100
    
    对于(int i=1;i)您正在定义要为文件创建的writer2,但您正在关闭writer!writer.newLine();writer.close();如果你想写偶数或奇数,你必须用2而不是i来增加SumeEven!那么,我应该在哪里关闭writer呢?在第一个循环之后,你是在关闭writer。然后你在创建writer 2,但在第二个循环之后,你是在关闭writer而不是writer 2。我认为这只是一个复制粘贴错误。因为你已经有了c一次丢失的writer!@Govan:你能检查一下我更新的代码和评论吗?@Serenity接受一个答案,如果这有助于你获得想要的结果?你正在定义要为文件创建的writer2,但你正在关闭writer!writer.newLine();writer.close();如果你想写偶数或奇数,你必须用2而不是i来增加SumeEven!那么,我应该在哪里关闭writer呢?在第一个循环之后,你是在关闭writer。然后你在创建writer 2,但在第二个循环之后,你是在关闭writer而不是writer 2。我认为这只是一个复制粘贴错误。因为你已经有了c失败者作家一次!@Govan:你能检查一下我更新的代码和评论吗?@Serenity接受一个答案,如果这有助于你获得想要的结果?试试新的…你应该打印
    i
    而不是
    sumeen
    试试新的…你应该打印
    i
    而不是
    sumeen
    嗨..我已经更新了my代码..你能帮我吗
    public class textFileIO {
        public static void main(String[] args) throws Exception {
            //Clear the contents of numbers.dat if already exists and populated
            File fileOne = new File("numbers.dat");
            fileOne.delete();
            File newFile = new File("numbers.dat");
            newFile.createNewFile();
            //Create writer object
            PrintWriter writer = new PrintWriter(new FileWriter("numbers.dat"));
            //Loop from 1 to 100
            for (int i = 1; i <= 100; i++) {
                //If number is even, write to file  
                if (i % 2 == 0) {
                    writer.print(i + ",");
                }
            }
            //Close writer object.
            writer.close();
            //Read from file
            FileInputStream fileStream = new FileInputStream("numbers.dat");
            DataInputStream in = new DataInputStream(fileStream);
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            //Print line
            System.out.println(reader.readLine());
            reader.close();
            //Write all odd numbers to file
            PrintWriter writer2 = new PrintWriter(new FileWriter("numbers.dat"));
            //Loop from 1 to 100
            for (int i = 1; i <= 100; i++) {
                //If number is odd, write to file  
                if (i % 2 == 1) {
                    writer2.print(i + ",");
                }
            }
            writer2.close();
            //Read from file
            FileInputStream fileStream2 = new FileInputStream("numbers.dat");
            DataInputStream in2 = new DataInputStream(fileStream2);
            BufferedReader reader2 = new BufferedReader(new InputStreamReader(in2));
            //Print line
            System.out.println(reader2.readLine());
            reader.close();
        }
    }
    
    for (i = 0; i < 100 ; i+2)
    { 
       if (i != 0) {
        writer.print(", ");
       } 
        writer.print(i+2);
    }   
    
    for (i = 0; i < 100 ; i+2)
    { 
        writer.print( ", " +(i+1));
    }   
    
    import java.io.*;
        import java.util.*;
        public class TextFileIO {
            public static void main(String[] args) throws Exception {
                //Clear the contents of numbers.dat if already exists and populated
                File fileOne = new File("numbers.dat");
                fileOne.delete();
                File newFile = new File("numbers.dat");
                newFile.createNewFile();
                //Create writer object
                PrintWriter writer = new PrintWriter(new FileWriter("numbers.dat"));
                //Loop from 1 to 100
                for (int i = 1; i <= 100; i++) {
                    //If number is even, write to file  
                    if (i % 2 == 0) {
                        writer.print(i + ",");
                    }
                }
                //Close writer object.
                //writer.close();
                //Read from file
                //FileInputStream fileStream = new FileInputStream("numbers.dat");
                //DataInputStream in = new DataInputStream(fileStream);
                //BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                //Print line
                //System.out.println(reader.readLine());
                //reader.close();
                //Write all odd numbers to file
                //PrintWriter writer2 = new PrintWriter(new FileWriter("numbers.dat"));
                //Loop from 1 to 100
                for (int i = 1; i <= 100; i++) {
                    //If number is odd, write to file  
                    if (i % 2 == 1) {
                        writer.print(i + ",");
                    }
                }
                writer.close();
                //Read from file
                FileInputStream fileStream2 = new FileInputStream("numbers.dat");
                DataInputStream in2 = new DataInputStream(fileStream2);
                BufferedReader reader2 = new BufferedReader(new InputStreamReader(in2));
                //Print line
                System.out.println(reader2.readLine());
                reader2.close();
            }
    
    
        }
    
    import java.io.*;
    import java.util.*;
    public class TextFileIO {
        public static void main(String[] args) throws Exception {
            //Clear the contents of numbers.dat if already exists and populated
            File fileOne = new File("numbers.dat");
            fileOne.delete();
            File newFile = new File("numbers.dat");
            newFile.createNewFile();
            //Create writer object
            PrintWriter writer = new PrintWriter(new FileWriter("numbers.dat"));
            //Loop from 1 to 100
            for (int i = 1; i <= 100; i++) {
                //If number is even, write to file  
                if (i % 2 == 0) {
                    writer.print(i + ",");
                }
            }
            //Loop from 1 to 100
            for (int i = 1; i <= 100; i++) {
                //If number is odd, write to file  
                if (i % 2 == 1) {
                    writer.print(i + ",");
                }
            }
            writer.close();
            //Read from file
            FileInputStream fileStream = new FileInputStream("numbers.dat");
            DataInputStream in = new DataInputStream(fileStream);
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            //Print line
            System.out.println(reader.readLine());
            reader.close();
        }
    }