java help , EOF ...

Discussion in 'QnA (read only)' started by Anjali, Oct 12, 2004.

Thread Status:
Not open for further replies.
  1. Anjali

    Anjali New Member

    Joined:
    Jul 6, 2004
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    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);
    }
     
  2. #/bin/sh

    #/bin/sh New Member

    Joined:
    Apr 20, 2004
    Messages:
    213
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    42.65 N 73.76 W
    >>out.println(ticker);

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

    Points , you simply need to do this:

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

    Anjali New Member

    Joined:
    Jul 6, 2004
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    Hi
    The complie error is in the newTicker.
     
  4. #/bin/sh

    #/bin/sh New Member

    Joined:
    Apr 20, 2004
    Messages:
    213
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    42.65 N 73.76 W
    Please show where 'ticker' is declared
     
  5. OP
    OP
    Anjali

    Anjali New Member

    Joined:
    Jul 6, 2004
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    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);
     
  6. OP
    OP
    Anjali

    Anjali New Member

    Joined:
    Jul 6, 2004
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    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);
    }
    }*/

    }
     
  7. #/bin/sh

    #/bin/sh New Member

    Joined:
    Apr 20, 2004
    Messages:
    213
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    42.65 N 73.76 W
    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));
     
  8. #/bin/sh

    #/bin/sh New Member

    Joined:
    Apr 20, 2004
    Messages:
    213
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    42.65 N 73.76 W
    Oh and

    java.io.FileOutputStream newTicker = new java.io.FileOutputStream("nasdaq");
     
  9. OP
    OP
    Anjali

    Anjali New Member

    Joined:
    Jul 6, 2004
    Messages:
    18
    Likes Received:
    0
    Trophy Points:
    0
    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));

    ^
     
  10. #/bin/sh

    #/bin/sh New Member

    Joined:
    Apr 20, 2004
    Messages:
    213
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    42.65 N 73.76 W
    Try
    PrintWriter out = new PrintWriter(new FileOutputStream("nasdaq"), true);
     
  11. allajunaki

    allajunaki New Member

    Joined:
    Jul 20, 2004
    Messages:
    143
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    Somewhere In my room....
    Ok I think i cracked it...

    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....)

    Hope this clears things for ya!!
     
Thread Status:
Not open for further replies.

Share This Page