I had a lab assignment in which I have difficulty. My program is supposed to read a text known as "names.txt". Thereafter, if the name is less than 5, the names will be written to "small.txt" else it is written to "big.txt". However, my program only reads alternate names from "names.txt". Thereafter, it produces a java.null exception. What is wrong??
I have already changed my program so that the pwstream is b4 the while loop. However, how my program reads only alternative names from my name.txt. Thereafter, it reads the null string and then produce an error message. Here it is:
Here is my original text file ("names.txt"):
Alex
Beckham
Giggs
Blanc
Neville
Scholls
Keane
McDonald
KennyRoger
BurgerKing
AandW
PHut
and here is my program:
import java.util.Scanner;
import java.io.*;
public class lab8 {
public static void main(String[] args) {
try{
Scanner sc = new Scanner (System.in);
//Step 1: create and open file stream
FileReader openfile = new FileReader ("names.txt");
BufferedReader brstream = new BufferedReader (openfile);
//Step 2 : must write into new file
FileWriter fw1= new FileWriter ("small.txt");
BufferedWriter bw1 = new BufferedWriter (fw1);
PrintWriter pw1 = new PrintWriter (bw1);
FileWriter fw2= new FileWriter ("big.txt");
BufferedWriter bw2 = new BufferedWriter (fw2);
PrintWriter pw2 = new PrintWriter (bw2);
//Step 3: check length of name
String name;
while ( (brstream.readLine() != null) ){
name = brstream.readLine();
System.out.println("Name is " + name);
if (name.length() < 5){pw1.println(name);}
else { pw2.println(name) ; }
}//close while
//step 4: close all the stream
brstream.close();
pw1.close();
pw2.close();}//close try
catch(FileNotFoundException e)
{System.out.println("File not found!"+e.getMessage() );
System.exit(0); }
catch(IOException e)
{System.out.println("IO Error! "+ e.getMessage());
e.printStackTrace();
System.exit(0);}
}
}
Here is the output:
Name is Beckham
Name is Blanc
Name is Scholls
Name is McDonald
Name is BurgerKing
Name is PHut
Name is null
Exception in thread "main" java.lang.NullPointerException
at lab8.main(lab8.java:36)
What is wrong?
Thanks!
I have already changed my program so that the pwstream is b4 the while loop. However, how my program reads only alternative names from my name.txt. Thereafter, it reads the null string and then produce an error message. Here it is:
Here is my original text file ("names.txt"):
Alex
Beckham
Giggs
Blanc
Neville
Scholls
Keane
McDonald
KennyRoger
BurgerKing
AandW
PHut
and here is my program:
import java.util.Scanner;
import java.io.*;
public class lab8 {
public static void main(String[] args) {
try{
Scanner sc = new Scanner (System.in);
//Step 1: create and open file stream
FileReader openfile = new FileReader ("names.txt");
BufferedReader brstream = new BufferedReader (openfile);
//Step 2 : must write into new file
FileWriter fw1= new FileWriter ("small.txt");
BufferedWriter bw1 = new BufferedWriter (fw1);
PrintWriter pw1 = new PrintWriter (bw1);
FileWriter fw2= new FileWriter ("big.txt");
BufferedWriter bw2 = new BufferedWriter (fw2);
PrintWriter pw2 = new PrintWriter (bw2);
//Step 3: check length of name
String name;
while ( (brstream.readLine() != null) ){
name = brstream.readLine();
System.out.println("Name is " + name);
if (name.length() < 5){pw1.println(name);}
else { pw2.println(name) ; }
}//close while
//step 4: close all the stream
brstream.close();
pw1.close();
pw2.close();}//close try
catch(FileNotFoundException e)
{System.out.println("File not found!"+e.getMessage() );
System.exit(0); }
catch(IOException e)
{System.out.println("IO Error! "+ e.getMessage());
e.printStackTrace();
System.exit(0);}
}
}
Here is the output:
Name is Beckham
Name is Blanc
Name is Scholls
Name is McDonald
Name is BurgerKing
Name is PHut
Name is null
Exception in thread "main" java.lang.NullPointerException
at lab8.main(lab8.java:36)
What is wrong?
Thanks!