Problema nos formatos - escrita de arquivo em txt

ola pessoal,

bom minha duvida é a seguinte: eu estou lendo um arquivo txt, fazendo alguns calculos com os numeros dentro desse arquivo txt e logo em seguida estou escrevendo em outro arquivo txt. Beleza entao, ate agora consegui.
Para criar o arquivo txt que vou produzir (output), eu fiz da seguinte maneira:

double[][] data = new double[gridW * gridL][5];

eu criei um double, porque esse arquivo envolver alguns calculos com numeros grandes. Agora vem o problema: eu preciso justamente de escrever uma palavra quando acontece um caso especial, no entanto o compilador esta acusando erro " Type mismatch: cannot convert from String to double"… Dai eu estava tentando descobrir o problema: eu preciso de escrever um String dentro desse arquivo double, é possivel??? estou fazendo isso:

String varyH = "teste"; data[row][4] = varyH;

o que se passa amigos? abaixo esta o codigo na sua totalidade:

[code]import java.io.;
import java.util.
;
import java.text.DecimalFormat;

//5 attributes: x, y, raw value, z-scores, cluster_id
class Formatter
{
public DecimalFormat threeDigits = new DecimalFormat(“0.00”);
int total = 0;

public static void main(String[] args) 
{
	Formatter fm = new Formatter ();
	int gridW = 700; // grid size = 83 x 65
	int gridL = 1253;
	fm.init ("C:\Users\Play\workspace\ZSc\src\aveveg.txt", gridW, gridL);


}

public void init (String inFilename, int gridW, int gridL)
{
	double[][] data = new double[gridW * gridL][5]; 

	readInputs (inFilename, data);

	int row = 0;
	float countP = 0;
	float countN = 0;
	double mean = mean (data);
	double stdev = stdev (data, mean);
	String varyH = "teste"; 
	
	
	for (int gl = 0; gl < gridL; gl++)
	{
		for (int gw = 0; gw < gridW; gw++)
		{

			data[row][0] = gw; //filling out the first attribute of double data
			data[row][1] = gl; //filling out the second attribute of double data

			if(data[row][2] != -9999){
				data[row][3] = (data[row][2] - mean)/stdev;
			}
			else data[row][3] = -9999;

// PROBLEMA ESTA AQUI!
if(data[row][3] == -9999)
data[row][4] = varyH;

			// figuring out the statistic
			if (data[row][3] != -9999){

				if(data[row][3] >= 1)
					countP++;

				if(data[row][3] <= -1)
					countN++;
			}

			row++;
		}


	}

	String outFilename = "C:\Users\Play\workspace\ZSc\src\aveveg1.txt";
	writeOutputs (outFilename, data);


}




public double mean (double[][] data)
{
	double mResult = 0.0;
	
	double sum = 0.0;
	for (int i = 0; i < data.length; i++)
	{
		if(data[i][2] != -9999){
			sum += data[i][2];
			total = total + 1;
		}
	}


	mResult = sum/total;
	System.out.println("MEAN:" + threeDigits.format(mResult));

	return mResult;

}
public double stdev (double[][] data, double mean)
{
	double sResult = 0.00;
	double tmp = 0.0, sum = 0.0;
	for (int i = 0; i < data.length; i++)
	{
		if(data[i][2] != -9999){
			tmp = data[i][2] - mean;
			sum += (tmp * tmp);
		}
	}

	sResult = Math.sqrt(sum/(data.length));
	System.out.println("STD_DEV:" + threeDigits.format(sResult));	

	return Math.sqrt (sum/(data.length)); 

}

public void readInputs (String inFilename, double[][] data)
/* indica que cada token é uma linha do double data e cada dado do arquivo txt
 sera colocado na linha 3 do double data*/
{
	FileReaderManager reader = new FileReaderManager (inFilename);
	String line = null;		
	int row = 0;



	while ((line = reader.read ()) != null)
	{
		StringTokenizer st = new StringTokenizer (line, " ");
		while (st.hasMoreTokens ())
		{
			data[row++][2] = Double.parseDouble (st.nextToken ());
		}
	}

	reader.close ();
}

public void writeOutputs (String outFilename, double[][] data)
{
	FileWriterManager writer = new FileWriterManager (outFilename);

	StringBuffer outData = new StringBuffer ();
	outData.append ("x,y,raw_value,Z-score_value,analyse\n");

	for (int i=0; i<data.length; i++)
	{
		outData.append (data[i][0] + ",");
		outData.append (data[i][1] + ",");
		outData.append (data[i][2] + ",");
		outData.append (data[i][3] + ",");
		outData.append (data[i][4] + "\n");
	}

	writer.write (outData.toString ());
	writer.close ();
}

}[/code]

obrigado pessoal,
abraços

Altera ali onde tá o erro.

              if(data[row][3] == -9999)   
                    data[row][4] = Double.valueOf(varyH);

[quote=SdRuboW]Altera ali onde tá o erro.

if(data[row][3] == -9999) data[row][4] = Double.valueOf(varyH); [/quote]

valeu SdRuboW pela dica! mas o erro persiste, tentei o parse Double tambem, mas deu erro. Quando usei o Double.valueOf apareceu isso:

Exception in thread “main” java.lang.NumberFormatException: For input string: “teste”
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.valueOf(Unknown Source)
at Formatter.init(Formatter.java:50)

eu vou tentar fazer uma gambiarra aqui, porque inserir um String dentro de um array double nao ta funfando de jeito algum!
abraços!

java_up então é o seguinte, o que tem nesse teu arquivo??

pois essa excpetion é por você ter tentado transformar a String “teste” em um tipo Double, isso nunca vai dar certo mesmo.

uma vez que seu array está definido assim

 double[][] data = new double[gridW * gridL][5];   

não tem como, o único jeito é esse ae