1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

.txt file in java program

  1. Nov 20, 2011 #1
    1. The problem statement, all variables and given/known data

    Write a program that takes a file name as argument and counts the number of words and the number of characters (without spaces) in the document.

    2. Relevant equations



    3. The attempt at a solution

    How exactly should my program take a .txt file as an argument? Do I simply:

    Code (Text):
    String str = args[0];
    And the contents of the .txt file are stored as strings? (The file is a text file with only letters).

    And how to check for each word inside that file? Let it read the string till encountering a space then (by previously declaring a count variable) increment count? I'm confused here. Is it that same as just studying a string?
     
    Last edited: Nov 20, 2011
  2. jcsd
  3. Nov 20, 2011 #2
    You can count the numbers of words by reading the lines from the .txt file and splitting them using String Tokenizers.


    http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html [Broken]
     
    Last edited by a moderator: May 5, 2017
  4. Nov 20, 2011 #3
    Sadly, we are limited to using the In class for this program. I came up with this but it is not working:

    Code (Text):
    public class DocumentS
    {
        public static void main(String[] args)
        {
            In in0 = new In(args[0]);
           
            int wordCount = 0;
            int charCount = 0;
           
            while (!StdIn.isEmpty())
            {
                wordCount++;
                String str = in0.readAll();
                for (int i = 1; i <= str.length(); i++)
                    charCount++;
            }
            System.out.println("Number of words: " + wordCount);
            System.out.println("Number of characters: " + charCount);
        }
    }
    It compiles fine but when I pass the .txt file as an argument, nothing happens. I don't know if the algorithm is right, but I really need help in this.
     
  5. Nov 21, 2011 #4
    I do see some problem in the above code but i don't know what exactly, so sorry. Also, i don't know much about "In class", although i found something on "In.class" online and modified it a bit to count the numbers of words and characters in a file and it works fine. Would you like to know about that? or you would like to stick to your version and fix it?
     
  6. Nov 21, 2011 #5
    I saw there are functions like
    readString() // it reads one word at a time
    readChar() // it reads one character at a time



    Therefore use these functions.
    Also take filename as follows

    String file = args[0];
    In in0 = new In(file);
     
  7. Nov 21, 2011 #6

    Mark44

    Staff: Mentor

    I don't believe that the In class is present in standard Java, but is a class that your instructor provides for you to use. Since you are limited to using just this class, you need to understand the methods and properties that are exposed by this class. We can't point you in the right direction without knowing what things are in this class.
     
    Last edited: Nov 22, 2011
  8. Nov 22, 2011 #7
    Code (Text):
    public class DocumentS
    {
        public static void main(String[] args)
        {
            In in0 = new In(args[0]);
           
            int wordCount = 0;
            int charCount = 0;
           
            while (!in0.isEmpty())
            {
                wordCount++;
                String str = in0.readString();
                for (int i = 1; i <= str.length(); i++)
                    charCount++;
            }
            System.out.println("Number of words: " + wordCount);
            System.out.println("Number of characters: " + charCount);
        }
    }
    I managed to fix this (I changed StdIn.isEmpty() to in0.isEmpty() since we are looping until the end of the file we attached rather than wait for no input which is StdIn). The In class is part of an external library our instructor provided for us. I though many people knew about it, but I guess I was wrong. The library is in this link if anyone is remotely interested: http://www.sendspace.com/file/t7wqmp

    Thanks for the replies.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: .txt file in java program
  1. Java programming (Replies: 4)

  2. Java program (Replies: 3)

Loading...