我正在尝试替换文件,但根据用户输入保持一些行完好无损。 (详情见下面代码)
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 :(得分:0)
while(input.hasNextLine()){
count ++;
while(n<=count){
output.println(input.nextLine());
} else {
break;
}
}
您还应该检查输入文件是否存在。 而且你应该关闭你的输入和输出。在这个简单的案例中我无所谓,但是你应该在更复杂的应用程序中做些什么。
答案 1 :(得分:0)
您应该打开PrintStream,并将append选项设置为true(默认情况下为false) -
PrintStream output = new PrintStream(new File(filename2, **true**));
然后你可以做类似下面的事情 -
String inputLine = scanner.readLine();
output.append(inputLine);
答案 2 :(得分: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();