Ok here is a program I am working on for an assignment.

import java.io.*;

public class Copy {
    public static void main(String[] args) throws IOException {
    File inputFile = new File("p1.txt");
    File outputFile = new File("p2.txt");

        FileReader in = new FileReader(inputFile);
        FileWriter out = new FileWriter(outputFile);
        int c;

        while ((c = in.read()) != -1)
           out.write(c);

        in.close();
        out.close();
    }
}

Now it works fine and everything, the problem is that I want it to print the outputFile to the screen when I run the application. And I can't figure out how! Our teacher would only say that it has something to do with a buffered reader, and I have never been very talented at those. :cry: If anyone could help with this I would really appreciate it.

Recommended Answers

All 5 Replies

Can't you use System.out.println somehow?

yeah "somehow" but I don't "knowhow" :) Someone suggested a try block?

Well I figured that part out! I had to use a buffered reader. Now I am stuck again though. I have read the data and divided it up with substring(num,num) like it needs to be and trimmed of the extra space. I have a while loop doing this but I can't figure out how to make the while loop do the whole file. Right now I have it using a counter but that won't work for the whole thing.

here it is: any suggestions for what the while condition should be?

import java.io.*;
import java.util.*;
import java.text.*;
import javax.swing.*;
import java.awt.font.*;
import java.awt.*;

public class Copy3 {
    public static void main(String[] args) throws IOException {


            BufferedReader input = new BufferedReader( new FileReader( "fruits.dat" ));
            StringBuffer buffer = new StringBuffer();
            String text;
            String complete;
            String idstring;
            String statestring;
            String datestring;
            String fruitstring;
            String gradestring;
            String coststring;
            String otheroutput;
            int counting;
            counting = 1;
            //otheroutput=input.readLine();


    while (counting != 6) {
        complete=input.readLine();
        if (complete.substring(0,1).equals(" ") )
        {
            fruitstring=complete.substring(10,20);
            fruitstring=fruitstring.trim();
            gradestring=complete.substring(20,22);
            gradestring=gradestring.trim();
            coststring=complete.substring(22,30);
            coststring=coststring.trim();
            System.out.println(fruitstring);
            System.out.println(gradestring);
            System.out.println(coststring);
        }


        else
        {
            idstring=complete.substring(0,10);
            statestring=complete.substring(10,12);
            datestring=complete.substring(12,20);
            System.out.println(idstring);
            System.out.println(statestring);
            System.out.println(datestring);
        }

        //otheroutput=input.readLine();

        counting=counting + 1;

    }
}
}

I may be reading your question wrong, and I know you are close to getting it the other way, but this is how I would do it.

 public void readFile()
  {
    String fileName = "INPUT_FILE_NAME", readLine;

    // Will read until the end of the file, if it exists \\
    try
    {
      BufferedReader in = new BufferedReader(
      new FileReader( fileName ) );
      readLine = in.readLine();

      while ( readLine != null )
      {
        System.out.println( readLine );
        readLine = in.readLine();
      }
      in.close();
    }

    // If file does not exist \\
    catch ( IOException iox )
    {
      System.out.print("File Not Found");
    }
  }

lol, reading your first post's code I was saying to myself "BUFFEREDREADER!!!!" But I see you already got it. GJ! and GL.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.