Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / September 2006

Tip: Looking for answers? Try searching our database.

Reading from File and Storing in Array

Thread view: 
vera13@gmail.com - 05 Sep 2006 06:51 GMT
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());
        }
    }
}
------------------------------------------------------------------------
juergen - 05 Sep 2006 14:19 GMT
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
Chris Uppal - 05 Sep 2006 16:13 GMT
> 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
Patricia Shanahan - 05 Sep 2006 14:28 GMT
> 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
Arne Vajhøj - 05 Sep 2006 16:32 GMT
>> 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
[quoted text clipped - 4 lines]
> 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


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.