用java编写方法f( file,M,N)。文本文件 a.txt,打印出M 行,N 列的值。注,列之间用"|'分割,注意异常处理
时间: 2023-12-03 14:44:06 浏览: 80
以下是一个可能的实现,它使用了 Java 的 Scanner 和 Formatter 类来处理文件和格式化输出。异常处理使用了 try-catch 块来捕获可能出现的异常。
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Formatter;
public class Main {
public static void f(File file, int M, int N) {
try {
Scanner scanner = new Scanner(file);
Formatter formatter = new Formatter(System.out);
int row = 0;
while (scanner.hasNextLine() && row < M) {
String line = scanner.nextLine();
String[] values = line.split("\\|");
if (values.length >= N) {
for (int i = 0; i < N; i++) {
formatter.format("%s ", values[i]);
}
formatter.format("\n");
row++;
}
}
scanner.close();
formatter.close();
} catch (FileNotFoundException e) {
System.err.println("File not found: " + file);
}
}
public static void main(String[] args) {
File file = new File("a.txt");
f(file, 3, 4); // example usage: print first 3 rows and 4 columns
}
}
```
在上述代码中,我们定义了一个名为 `f` 的静态方法,它接受一个 `File` 对象 `file`,以及两个整数 `M` 和 `N`,表示要打印的行数和列数。方法首先尝试打开文件并创建一个 `Scanner` 对象来读取输入。然后,它会使用一个 `Formatter` 对象来格式化输出,输出格式为每行 `N` 列,列之间用 `|` 分隔。如果输入文件不足 `M` 行或某一行不足 `N` 列,则方法会在打印完所有可用行后停止。最后,方法关闭输入和输出对象。
在 `main` 方法中,我们演示了如何使用 `f` 方法来打印文件中的一部分内容。在这个例子中,我们打印了文件的前三行和前四列。
阅读全文