Java создает строки из Buffered Reader и сравнивает строки - PullRequest
0 голосов
/ 22 июля 2011

Я использую Java + Selenium 1 для тестирования веб-приложения.

Мне нужно построчно читать текстовый файл, используя befferedreader.readLine, и сравнивать найденные данные с другой строкой.

Есть ли способ присвоить каждой строке уникальную строку? Я думаю, что это будет примерно так:

    FileInputStream fstream = new FileInputStream("C:\\write.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));

    String strLine;
    String[] strArray = null;
    int p=0;
        // Read File Line By Line

    while ((strLine = br.readLine()) != null) {
        strArray[p] = strLine;
        assertTrue(strArray[p].equals(someString));
        p=p+1;
    }

Ответы [ 3 ]

1 голос
/ 22 июля 2011

В порядке убывания важности,

  • Вам вообще не нужно хранить String s в массиве, как указывает Perception.
  • Вы не знаете, сколько строк, поэтому, как указывает Qwerky, если вам нужно их хранить, вы должны использовать коллекцию с изменяемым размером, такую ​​как ArrayList.
  • DataInputStream не требуется: вы можете просто обернуть FileInputStream непосредственно в InputStreamReader.
1 голос
/ 22 июля 2011

Проблема в том, что вы не знаете, сколько строк, поэтому вы не можете правильно определить размер вашего массива.Вместо этого используйте List<String>.

0 голосов
/ 22 июля 2011

Возможно, вы захотите попробовать что-то вроде:

public final static String someString = "someString";

public boolean isMyFileOk(String filename){
    Scanner sc = new Scanner(filename);
    boolean fileOk = true;
    while(sc.hasNext() && fileOk){
        String line = sc.nextLine();
        fileOk = isMyLineOk(line);
    }
    sc.close();
    return fileOk;
}

public boolean isMyLineOk(String line){
    return line.equals(someString);
}

Класс Сканер обычно является отличным классом для чтения файлов:)

И, как и предполагалось, выможет проверять одну строку за раз вместо загрузки их всех в память перед их обработкой.Это может не быть проблемой, если ваш файл относительно небольшой, но вам лучше поддерживать масштабируемость кода, особенно если вы делаете то же самое:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...