2013-11-20 4 views
0

Я пытаюсь чередовать файл, но сохраняя некоторые строки неповрежденными на основе пользовательского ввода. (Подробности ниже кода)Как удалить строки на основе целого числа n?

public class RemoveLines { 
public static void main(String[] args) 
     throws FileNotFoundException { 

    // prompt for input file name 
    Scanner console = new Scanner(System.in); 
    System.out.print("Type first file name to use: "); 
    String filename1 = console.nextLine(); 
    System.out.print("Type second file name to use: "); 
    String filename2 = console.nextLine(); 
    System.out.println("enter an integer: "); 
    int n = console.nextInt(); 
    Scanner input = new Scanner(new File(filename1)); //put the first file as input 
    PrintStream output = new PrintStream(new File(filename2)); //put the second file as output 
    int count =0; 
    while(input.hasNextLine()){ 
     count ++; 
     while(n<=count){ 
      output.println(); // this is where i don't know what to place 

     } 
    } 
} 
} 

Программа должна предлагать пользователю ввести 2 имени файла и целое число n. он должен создать второй файл, содержащий первые n строк первого файла, сохраняя при этом его неповрежденным. Если первый файл содержит меньше, чем n строк, то второй файл будет содержать все строки первого файла. Я начал писать цикл while, но я не уверен, какую команду я должен включить, чтобы получить желаемый результат. спасибо.

+0

это, если, а не во время, а ваше другое должно содержать разрыв. – njzk2

+0

Дано 'filename1' существует? В противном случае он будет вызывать 'FileNotFoundException' – Masudul

+0

@Masud yes filename1 существует – abedzantout

ответ

0

У попробовать с следующий код:

int count = 0; 
    while (count < n) { 
     if (input.hasNextLine()) { 
      output.println(input.nextLine()); // this is where i don't know what to place 
      count++; 
     }else 
     { 
      break; 
     } 

    } 

    /** 
    * Close scanner 
    */ 

    input.close(); 
    console.close(); 
    output.close(); 
0
while(input.hasNextLine()){ 
    count ++; 
    while(n<=count){ 
     output.println(input.nextLine()); 
    } else { 
     break; 
    } 
} 

Вы также должны проверить наличие входного файла. А также вы должны закрыть ввод и вывод. Я не буду иметь значения в этом тривиальном случае, но это то, что вы должны делать в более сложных приложениях.

0

Вы должны открыть PrintStream с возможностью дописывания значение ИСТИНА (который является ложным по умолчанию) -

PrintStream output = new PrintStream(new File(filename2, **true**)); 

Затем вы можете сделать что-то вроде ниже -

String inputLine = scanner.readLine(); 
output.append(inputLine); 
Смежные вопросы