Member 12200805 Ответов: 2

Как получить из текстового файла только строку, содержащую два символа


я получил вывод в командной строке,но когда я пытаюсь получить ответ в тексте file..my кодирование сборки успешно...но показывает пустой файл

Что я уже пробовал:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

public class ll {

public static void main(String[] args) {
    FileReader fr = null;
    BufferedReader br =null;

    String [] stringArray;
    int counLine = 0;
    int arrayLength ;
    String s="";
    String stringLine="";
    try{
     //   fr = new FileReader("F:\\New folder (2)\\N.txt");
        String wrt="F:\\New folder (2)\\N.txt";
String line=null;
 fr=new FileReader(wrt);
FileWriter fw=new FileWriter(wrt);
BufferedWriter bw=new BufferedWriter(fw);
 
        br = new BufferedReader(fr);
        while((s = br.readLine()) != null){
            stringLine = stringLine + line;
            stringLine = stringLine + " ";
            counLine ++;  
        }System.out.println(stringLine);
 while((line=br.readLine())!=null)
       {
          System.out.print(line);
        }
        br.close();
        stringArray = stringLine.split(" ");
        arrayLength = stringArray.length;
     for (int i = 0; i < arrayLength; i++) {
            int c = 1 ;
            for (int j = i+1; j < arrayLength; j++) {
                if(stringArray[i].equalsIgnoreCase(stringArray[j])){
                   c++;
                   for (int j2 = j; j2 < arrayLength; j2++) {
                 }
     }
                int k;
              for(k=2;k==stringArray[i].length();i++)
           
             // if(stringArray[i].length()==1)
                {     bw.write(stringArray[i]);
              //    System.out.println(stringArray[i]);  
              }
            }}

//bw.newLine();
//bw.write("hello");
bw.close();
     fr.close();
        br.close();
    }catch (Exception e) {
        e.printStackTrace();
    }}}

2 Ответов

Рейтинг:
2

Patrice T

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
2

Richard MacCutchan

Ваша программа очень запутана, и часть кода избыточна. Ваш первый цикл считывает каждую строку файла в переменную с именем s, но ничего не делает с этими данными. Он неоднократно пытается конкатенировать stringLine и line, но ни один из них не содержит никакого текста. Затем вы запускаете второй цикл, пытаясь прочитать файл, но так как он уже находится в EOF (из первого цикла), читать нечего. После этого вы пытаетесь записать что-то обратно в тот же файл, тем самым уничтожая любые исходные данные. Если вы должны делать чтение и запись в одной и той же программе, то используйте два разных файла, чтобы не повредить исходные тестовые данные. Кроме того, попробуйте прочитать вашу программу строка за строкой, чтобы проверить логику.


Member 12200805

ниже приведено мое первое кодирование, которое дало мне правильный вывод в комментарии prompt..so что я должен сделать, чтобы получить этот вывод в файле

мпорт Ява.Ио.Командой bufferedreader;
импорт java. io. FileReader;

открытый класс гг {

публичный статический пустота главный(строка[] аргументы) {
FileReader fr = null;
Командой bufferedreader БР =нуль;

String [] stringArray;
int countline = 0;
int arrayLength ;
Строка s="";
Строка шнур="";
пробовать{
fr = new FileReader("D:\\surya\\Новый folder\\ss\\jj.txt");
БР = читает(фр);
while ((s = br. readLine ())! = null){
струну = шнур + с;
струну = шнур + " "
countline ++;
Система}.из.код println(шнур);

stringArray = stringLine. split(" ");
arrayLength = stringArray. length;
for (int i = 0; i < arrayLength; i++) {
int c = 1 ;
for (int j = i+1; j < arrayLength; j++) {
if (stringArray[i]. equalsIgnoreCase(stringArray[j])){
с++;
for (int j2 = j; j2 < arrayLength; j2++) {
}
}
текст;
for (k=2;k==stringArray[i]. length (); i++)

// if (stringArray[i]. length()==1)
{
Системы.из.код println(stringArray[я]);
}}} фр.рядом();
БР.рядом();
}catch (исключение e) {
е.печатные();
}}}

Richard MacCutchan

Вместо использования System.out.println, просто запишите те же данные в свой файл. Видеть Урок: основные операции ввода-вывода (на Java&амп;торговля; учебники &амп;ГТ; основные классы)[^] для получения полной информации.