Reading from File and Storing in Array

V

vera13

I have a file with one floating point number per line which I have to
read into an array. I wrote a piece of code using the String Tokenizer
but it tries to tokenize the file name itself instead of the file
contents. I'm VERY new to this so please don't make fun :p Please help
or at least point in the right direction. Thank you.

------------------------------------------------------------------------
import java.io.*;
import java.util.*;
import javax.swing.JOptionPane;

public class FileReader
{
/* Main Method */
public static void main(String[] args)
{
FileReader input = null;

// Promt the user for file name
String fileName = JOptionPane.showInputDialog(null,
"Enter the file name:",
"File Name Prompt",
JOptionPane.QUESTION_MESSAGE);

// Create a file object
File file = new File(fileName);

try
{
// Create an input stream
input = new FileReader(fileName);

int code;

// Repeatedly read a character and display it on the console
while((code = input.read()) != -1)
System.out.print((char)code);
}

catch (FileNotFoundException ex)
{
System.out.println("File " + fileName + " does not exist.\n");
}

catch (IOException ex)
{
ex.printStackTrace();
}

finally
{
try
{
// Close the file
input.close();
}

catch(IOException ex)
{
ex.printStackTrace();
}
}

// Tokenizer doesn't work because it's reading the file name string
// instead of the file contents.

StringTokenizer tokenizer = new StringTokenizer(fileName, "\n");

System.out.println("The total number of tokens is " +
tokenizer.countTokens());

while (tokenizer.hasMoreTokens())
{
System.out.println(tokenizer.nextToken());
}
}
}
------------------------------------------------------------------------
 
J

juergen

Your open a stream,
// Create an input stream
input = new FileReader(fileName);


but you feed the Tokenizer with the 'fileName'
StringTokenizer tokenizer = new StringTokenizer(fileName, "\n");

You need to read the file, store it in a char-Array und feed the
Tokenizer
with this array.
You can also use
class StreamTokenizer,
and feed it with input-stream

Juergen
 
P

Patricia Shanahan

I have a file with one floating point number per line which I have to
read into an array. I wrote a piece of code using the String Tokenizer
but it tries to tokenize the file name itself instead of the file
contents. I'm VERY new to this so please don't make fun :p Please help
or at least point in the right direction. Thank you.

Given one floating point number per line, any tokenizer is overkill. Use
a BufferedReader's getLine method and Double's parseDouble.

Patricia
 
C

Chris Uppal

juergen said:
You need to read the file, store it in a char-Array und feed the
Tokenizer
with this array.
You can also use
class StreamTokenizer,
and feed it with input-stream

Nice layout. Makes it read sort of like a haiku...

;-)

-- chris
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Patricia said:
Given one floating point number per line, any tokenizer is overkill. Use
a BufferedReader's getLine method and Double's parseDouble.

That is how I would do it too.

But if one are using 1.5, then Scanner and nextDouble are
probably the "correct" way.

Arne
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,175
Latest member
Vinay Kumar_ Nevatia
Top