2015-07-29 2 views
-2
public class Auto 
{ 
public static void main(String [] args) { 

// The name of the file to open. 
System.out.print("\nPlease enter TextfileName.txt : "); 
Scanner keyboard = new Scanner(System.in); 
String fileName = keyboard.next(); 
int counter = 0; 

    //Reading filename.text from code 
    System.out.println("\nReading '"+fileName+"' from Java Code.\n"); 

//Date and time stamp for the program. 
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    Date date = new Date(); 

    System.out.print("Todays date: "+dateFormat.format(date)+"\n\n\n"); 

// This will reference one line at a time 
String line = null; 
FileReader fileReader = null; 

//-------------------------------------------------------TAB_1----------------------------------------------// 
     System.out.println("\t\t\t\t TAB_1[Date on]\n"); 
try { 
    // FileReader reads text files in the default encoding. 
    fileReader = new FileReader(fileName); 

    // Always wrap FileReader in BufferedReader. 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 


    while((line = bufferedReader.readLine()) != null) { 
     counter++; 
     if(counter == 1 || counter == 3 || counter == 9) 
     { 
      // print out the lines above that are found in the text 
      System.out.println(line); 
      System.out.println("----------"); 
     } 
    } 
    }  

     catch(FileNotFoundException ex) { 
      System.out.println("Unable to open file '" + fileName + "'");     
      } 
       catch(IOException ex) { 
      System.out.println("Error reading file '" + fileName + "'");     
    // Or we could just do this: 
    // ex.printStackTrace(); 
} 
finally 
{ 
    if(fileReader != null){ 
     // Always close files. 
     // BufferedReader.close();    
    } 
} 

некоторые согласовани бы помочь, но i`m не знаю, как это работаетпечать строка, которая содержит определенный шаблон из текстового файла в Java

}}

Один я выше работает, но я хочу также найти определенную строку в любом месте текстового файла и распечатать эту строку

ответ

0

Просто используйте метод contains класса String, чтобы проверить наличие подстроки внутри строки.

while((line = bufferedReader.readLine()) != null) { 
     if (line.contains("some string") { 
      System.out.println(line); 
      System.out.println("----------"); 
     } 
    } 

Если вы хотите проверить несколько подстрок, а не только один, то вы должны создать массив строк всех подстрок, которые вы хотите, чтобы искать и цикл через них.

Сначала добавьте следующую строку в самом начале класса:

public static final String[] listOfStrings = new String[] { "substring 0", "sub string 1" , "substring 2" }; 

Заменить подстроки с вашими собственными значениями.

Затем цикл через них, чтобы найти спички:

while((line = bufferedReader.readLine()) != null) { 
     for (String match : listOfStrings) {   
      if (line.contains(match)) { 
       System.out.println(line); 
       System.out.println("----------"); 
       break; // No need to continue after the first match 
      } 
     } 
    } 
+0

http://stackoverflow.com/users/4519503/user212263 отлично работает, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^