文本文件搜索无效

时间:2011-05-25 11:26:35

标签: java search text-files

好的,我已经在文本文件中输入了一些记录,我可以写入和读取此文件,但我现在正在尝试搜索此文本文件并遇到问题。

package assignmentnew;

// Import io so we can use file objects
import java.io.*;
import java.util.Scanner;

public class SearchProp {
    public void Search() throws FileNotFoundException {
        try {
            String details, input, id, line;
            int count;
            Scanner user = new Scanner(System.in);
            System.out.println();
            System.out.println();
            System.out.println("Please enter your housenumber: ");
            input = user.next();
            Scanner housenumber = new Scanner(new File("writeto.txt"));
            while (housenumber.hasNext())
            {
                id = housenumber.next();
                line = housenumber.nextLine();
                if (input.equals(id))
                {
                    System.out.println("House number is: "  + id + "and" + line);
                    break;
                }
                if(!housenumber.hasNext()) {
                    System.out.println("no house with this number");
                }
            }
        }
        catch(IOException e)
        {
            System.out.print("File failure");
        }
    }
}

无论我输入什么价值,我都被告知文件中没有门牌号码,但显然是,有什么想法吗?

附录:

文本文件中的文件结构。

27,Abbey View,Hexham,NE46 1EQ,4,150000,Terraced
34,Peth Head,Hexham,NE46 1DB,3,146000,Semi Detached
10,Downing Street,London,sw19,9,1000000,Terraced

2 个答案:

答案 0 :(得分:6)

扫描程序的默认分隔符是空格,而不是,

答案 1 :(得分:2)

您必须使用housenumber.useDelimiter(",");,代码才有效。

修改 在它之前设置它。 这就是我得到的例子27。

Please enter your housenumber: 
27
House number is: 27 and ,Abbey View,Hexham,NE46 1EQ,4,150000,Terraced