Status
Not open for further replies.

Anjali

Broken In
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);
}
 

#/bin/sh

Journeyman
>>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. :)
 
OP
A

Anjali

Broken In
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);
 
OP
A

Anjali

Broken In
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);
}
}*/

}
 

#/bin/sh

Journeyman
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));
 
OP
A

Anjali

Broken In
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));

^
 

allajunaki

Journeyman
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!!
 
Status
Not open for further replies.
Top Bottom