Solved

Appending to EOF error

Posted on 2004-10-08
17
517 Views
Last Modified: 2008-03-04
I am trying to add some strings to EOF my code is as below, but I get an error saying can't convert FileOutPutStream to String




      try
            {
                  FileOutputStream newTicker = new FileOutputStream("nasdaq");
                  PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
                  out.println(ticker);
                  out.close();
            }
      
            catch (IOException e)
            {
                  System.err.println(e.getMessage());
                  System.exit(1);
            }
0
Comment
Question by:izomax
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 4
  • 2
  • +3
17 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 12263460
>>out.println(ticker);

Would appear 'ticker' is not of type String. It needs to be
0
 
LVL 9

Expert Comment

by:DrWarezz
ID: 12263485
Points to CEHJ, you simply need to do this:

String ticker = "Something";
// Then the rest of your above code here. :)

[r.D]
0
 

Author Comment

by:izomax
ID: 12263539
Hi

The complie error is in the newTicker.
0
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 
LVL 86

Expert Comment

by:CEHJ
ID: 12263545
Please show where 'ticker' is declared
0
 

Author Comment

by:izomax
ID: 12263551
javac -classpath /cad2/corba/JOB-3.3.2/ob/lib/OB.jar:. broker2/*.java
broker2/OnlineBroker.java:116: Incompatible type for constructor. Can't convert java.io.FileOutputStream to java.lang.String.
                        PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
                                                                         ^
broker2/OnlineBroker.java:117: Variable ticker may not have been initialized.
                        out.println(ticker);
                                    ^
0
 

Author Comment

by:izomax
ID: 12263556
   public void addSymbol(String symbol) throws broker2.BrokerPackage.BrokerErrorException
    {
      String ref = null;
      String ticker;
      String value;
      int positionSpace;
      boolean foundSymbol = false;
      
      try
      {
            FileInputStream file = new FileInputStream("nasdaq");
            BufferedReader in =   new BufferedReader(new InputStreamReader(file));
            
            while((ref = in.readLine())!=null)
            {
            
                  positionSpace = ref.indexOf(' ');
                  ticker = ref.substring(0, positionSpace);
                  value = ref.substring(positionSpace+1);            
            
                  if(ticker.equalsIgnoreCase(symbol))
                  {
                        broker2.BrokerPackage.BrokerErrorException err = new
                              broker2.BrokerPackage.BrokerErrorException(broker2.BrokerPackage.BrokerErrors.SymbolExists);
                        throw err;
                  }
                  else
                  {
                        foundSymbol = false;
                        
                        //FileOutputStream newTicker = new FileOutputStream("nasdaq");
                        //System.out.println("adding symbol\n");
                        //PrintWriter out = new PrintWriter(new FileWriter("nasdaq", true));
                        //out.println(ticker);
                        //out.close();
                  }
                  

            }
            
            if ( foundSymbol == false)
            {
      
            //add symbol to the EOF
            try
            {
                  FileOutputStream newTicker = new FileOutputStream("nasdaq");
                  PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
                  out.println(ticker);
                  out.close();
            }
      
            catch (IOException e)
            {
                  System.err.println(e.getMessage());
                  System.exit(1);
            }
      }      
            
            
            
            file.close();
      }
      
      catch (IOException e)
      {
            System.err.println(e.getMessage());
            System.exit(1);
      }
      
      /*if ( foundSymbol == false)
      {
      
            //add symbol to the EOF
            try
            {
                  FileOutputStream newTicker = new FileOutputStream("nasdaq");
                  PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
                  out.println(ticker);
                  out.close();
            }
      
            catch (IOException e)
            {
                  System.err.println(e.getMessage());
                  System.exit(1);
            }
      }*/
      
    }
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12263578
Please say what happens when you do, instead of

>>PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));


java.io.PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(newTicker, true));




0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12263581
Oh and

java.io.FileOutputStream newTicker = new java.io.FileOutputStream("nasdaq");
0
 
LVL 3

Expert Comment

by:CI-Ia0s
ID: 12263664
As for ticker not having been initialized, make the declaration:
String ticker = "";
or
String ticker = null;
0
 

Author Comment

by:izomax
ID: 12263957
Hi

I get the same error:

javac -classpath /cad2/corba/JOB-3.3.2/ob/lib/OB.jar:. broker2/*.java
broker2/OnlineBroker.java:116: Incompatible type for constructor. Can't convert java.io.FileOutputStream to java.lang.String.
                        java.io.PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(newTicker, true));
 
    ^
0
 

Author Comment

by:izomax
ID: 12263959
Hi

I get the same error:

javac -classpath /cad2/corba/JOB-3.3.2/ob/lib/OB.jar:. broker2/*.java
broker2/OnlineBroker.java:116: Incompatible type for constructor. Can't convert java.io.FileOutputStream to java.lang.String.
                        java.io.PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(newTicker, true));
 
    ^
0
 

Author Comment

by:izomax
ID: 12263960
Hi

I get the same error:

javac -classpath /cad2/corba/JOB-3.3.2/ob/lib/OB.jar:. broker2/*.java
broker2/OnlineBroker.java:116: Incompatible type for constructor. Can't convert java.io.FileOutputStream to java.lang.String.
                        java.io.PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(newTicker, true));
 
    ^
0
 

Author Comment

by:izomax
ID: 12263961
Hi

I get the same error:

javac -classpath /cad2/corba/JOB-3.3.2/ob/lib/OB.jar:. broker2/*.java
broker2/OnlineBroker.java:116: Incompatible type for constructor. Can't convert java.io.FileOutputStream to java.lang.String.
                        java.io.PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(newTicker, true));
 
    ^
0
 
LVL 3

Expert Comment

by:CI-Ia0s
ID: 12264015
Once is enough you know... :P

Try
PrintWriter out = new PrintWriter(new FileOutputStream("nasdaq"), true);
0
 
LVL 92

Expert Comment

by:objects
ID: 12273071
         try
          {
               File newTicker = new File("nasdaq");
               PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
               out.println(ticker);
               out.close();
          }
     
          catch (IOException e)
          {
               System.err.println(e.getMessage());
               System.exit(1);
          }
0
 
LVL 1

Accepted Solution

by:
IOException earned 500 total points
ID: 12311121
I think The problem lies in the fact that
there is no Overloaded constructor for FileWriter in java which takes FileOutputStream as constructor...

so may wanna modify the statement to directly open the file in FileWriter , instead of Plugging the file into a stream and then plugging Stream to FileWriter
instead of
File.nasdaq->FileOutputStream.newTicker->FileWriter->PrintWriter
eliminate the underlined part....
So ur code becomes something like this
Code:

 //add symbol to the EOF
try
{
//FileOutputStream newTicker = new FileOutputStream("nasdaq");
// FileOutputStream not required

//PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
// Invalid FileWriter Constructor, Valid constructors are the ones that take File,String,FileDescription ).
PrintWriter out = new PrintWriter(new FileWriter("nasdaq", true));

out.println(ticker);
out.close();
}
 


See if this helps ya!!
(I copy pasted ur prog, hacked it a lil to make the snippet work independantly and got it working this way... Hope this helps....)

Now if u r interested here is the complete Code Base that a worked on...
See it for urself...

Code:

import java.io.*;
import java.io.File;




public class javaFile
{
public javaFile()
{
}
public void addSymbol(String symbol) throws IOException
{
   String ref = null;
   String ticker = symbol;
   String value;
   int positionSpace;
   boolean foundSymbol = false;

   try
   {
      FileInputStream file = new FileInputStream("nasdaq.txt");
      BufferedReader in = new BufferedReader(new InputStreamReader(file));

/*      while((ref = in.readLine())!=null)
      {

         positionSpace = ref.indexOf(' ');
         ticker = ref.substring(0, positionSpace);
         value = ref.substring(positionSpace+1);

         if(ticker.equalsIgnoreCase(symbol))
         {
            broker2.BrokerPackage.BrokerErrorException err = new
            broker2.BrokerPackage.BrokerErrorException(broker2.BrokerPackage.BrokerErrors.SymbolExists);
            throw err;
         }
         else
         {
            foundSymbol = false;

            //FileOutputStream newTicker = new FileOutputStream("nasdaq");
            //System.out.println("adding symbol\n");
            //PrintWriter out = new PrintWriter(new FileWriter("nasdaq", true));
            //out.println(ticker);
            //out.close();
         }


      }

      if ( foundSymbol == false)
      {
*/
         //add symbol to the EOF
         try
         {
            //FileOutputStream newTicker = new FileOutputStream("nasdaq.txt");
             
            PrintWriter out = new PrintWriter(new FileWriter("nasdaq.txt", true));
            out.println(ticker);
            out.close();
         }

         catch (IOException e)
         {
            System.err.println(e.getMessage());
            System.exit(1);
         }
//      }



      file.close();
   }

   catch (IOException e)
   {
      System.err.println(e.getMessage());
      System.exit(1);
   }

   /*if ( foundSymbol == false)
   {

      //add symbol to the EOF
      try
      {
         FileOutputStream newTicker = new FileOutputStream("nasdaq");
         PrintWriter out = new PrintWriter(new FileWriter(newTicker, true));
         out.println(ticker);
         out.close();
      }

      catch (IOException e)
      {
         System.err.println(e.getMessage());
         System.exit(1);
      }
   }*/


}
      public static void main(String args[])
      {
         javaFile x= new javaFile();
         try
         {
            x.addSymbol("cool maan jurenamo");
         }
         catch(IOException e)
         {
            System.out.println("Oops!! "+e);
         }
      }

}
 


(I created a temp file called nasdaq.txt and then worked on it.. it worked....)
0
 
LVL 92

Expert Comment

by:objects
ID: 12335789
thats basically the same as I posted above :)
just uses a filename, instead of a File object. end result it still the same.
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…

729 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question