Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  [SOLVED] How to search a text file?! Please help!  (Read 420 times)
0 Members and 1 Guest are viewing this topic.
Offline HyperReal

Senior Newbie





« Posted 2011-11-17 22:46:46 »

I would like to search a simple text file: for instance let's see the following is the contents of my text file...

Edward Password123
Cedrick pASSWORD321

How do I parse this so that I give my scanner object a username and it finds the respective password?  Each username and password are on seperate lines all will be divided by a " " ( a space).  How do I go about doing such a thing?

Here's what I have so far...

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
package test;

import java.io.*;
import java.util.*;

public class TestFileReader
{
    public void readFile(String fileName)
    {
        try
        {
            File file = new File(fileName);
            Scanner scan = new Scanner(file);
           
            while (scan.hasNextLine())
            {
                System.out.println(scan.nextLine());
            }
        } catch (FileNotFoundException e) { System.out.println("File not found."); }
    }

    public void writeToFile(String fileName, String Username, String Password)
    {
        try
        {
            FileWriter writer = new FileWriter(fileName, true);
            writer.write("\n" + Username + " " + Password);
            writer.flush();
        } catch (IOException e) {}
    }
   
    public void getPassword(String fileName, String Username)
    {
        try
        {
            File file = new File(fileName);
            Scanner scan = new Scanner(file);
           
        } catch (FileNotFoundException e) { System.out.println("File not found."); }
       
    }
}

Offline Gingerious

Junior Member


Medals: 2



« Reply #1 - Posted 2011-11-17 23:04:15 »

If you're already reading the file line-by-line, you can use a string tokenizer to separate the username and password:

1  
2  
3  
4  
 StringTokenizer st = new StringTokenizer("this is a test");
     while (st.hasMoreTokens()) {
         System.out.println(st.nextToken());
     }


Output:

this
is
a
test

Just replace "this is a test" with the nextline read and you can parse out the username and password to do individual checks on them.
Offline HyperReal

Senior Newbie





« Reply #2 - Posted 2011-11-17 23:08:44 »

Really what I want to do is to have something that when it's given a username it finds that username's password...
I don't really need to separate everything out like that.
Games published by our own members! Check 'em out!
Play the free demo of Revenge of the Titans!
Offline HyperReal

Senior Newbie





« Reply #3 - Posted 2011-11-18 00:23:23 »

Ok... I figured it out..

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
package test;

import java.io.*;
import java.util.*;

public class TestFileReader
{
    static String getPassword( String userName )
    {
        try
        {
            BufferedReader r = new BufferedReader( new FileReader("file"));
            String line = null;
           
            while ((line = r.readLine()) != null)
            {
                String[] pair = line.split(" +");
               
                if (pair[0].equalsIgnoreCase(userName))
                {
                    r.close();
                    return pair[1];
                }
            }
            return null;
        } catch (IOException e) { throw new RuntimeException( e ); }
    }
}
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (131 views)
2013-05-17 21:29:12

alaslipknot (140 views)
2013-05-16 21:24:48

gouessej (170 views)
2013-05-16 00:53:38

gouessej (164 views)
2013-05-16 00:17:58

theagentd (174 views)
2013-05-15 15:01:13

theagentd (159 views)
2013-05-15 15:00:54

StreetDoggy (203 views)
2013-05-14 15:56:26

kutucuk (227 views)
2013-05-12 17:10:36

kutucuk (227 views)
2013-05-12 15:36:09

UnluckyDevil (230 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.064 seconds with 20 queries.