I want to write a program that reads numbers from both.txt file and write to even.txt if its even and to odd.txt if its odd numbers in java. i need help
i have managed to create these files
I have tried the following but its not working:
public static void main(String[] args) throws FileNotFoundException, IOException{
File both = new File("/home/eddie/Desktop/both.txt");
File odd = new File("/home/eddie/Desktop/odd.txt");
File even = new File("/home/eddie/Desktop/even.txt");
Scanner myObj = new Scanner(System.in);
int number,remainder;
System.out.println("Please enter a number!");
number = myObj.nextInt();
try (PrintWriter pwboth = new PrintWriter(both)) {
pwboth.println(number);
pwboth.close();
}
remainder = number/2;
if (remainder != 0)
{
try (PrintWriter pwodd = new PrintWriter(odd)) {
pwodd.println(number);
pwodd.close();
}
}
else if(remainder > 0)
{
try (PrintWriter pweven = new PrintWriter(even)) {
pweven.println(number);
pweven.close();
}
}
}
This code is only printing to odd.txt and both.txt even if its even number and i want the program to read numbers from the both file i just don't know how to go about it.
Note : The operator modulo (%) is used to get remainder value after division for Example: X % Y = Z means if X is divided by Y then it gave Z as remainder
So the definition of ODD and EVEN
Here is correct code as you have posted having expected result:
public static void main(String[] args) {
//Read & Write from and To the file
File file = new File("source.txt");
File even = new File("even.txt");
File odd = new File("odd.txt");
int number = 0;
try (BufferedReader reader= new BufferedReader(new FileReader(file));
PrintWriter evenWriter = new PrintWriter(even);
PrintWriter oddWriter = new PrintWriter(odd);){
String text = null;
while ((text = reader.readLine()) != null) {
number = Integer.parseInt(text) ;
if(number % 2 == 0) {
evenWriter.println(number);
}else{
oddWriter.println(number);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
source.txt
12
23
34
45
56
67
78
89
90
even.txt
12
34
56
78
90
odd.txt
23
45
67
89