java在用list读取文件时候读取空行
时间: 2023-07-18 13:25:22 浏览: 130
在Java中,使用List读取文件时,如果文件中存在空行,可以使用以下代码来过滤掉空行:
```java
List<String> lines = Files.readAllLines(Paths.get("file.txt"));
lines.removeIf(line -> line.trim().isEmpty());
```
这段代码首先使用Files.readAllLines()方法将文件中的所有行读取到List中,然后使用removeIf()方法和Lambda表达式来过滤掉空行。Lambda表达式中的line.trim().isEmpty()用来判断当前行是否为空行,如果是,则将其移除。
相关问题
Java中使用ExcelUtil读取Excel文件中的所有内容
在 Java 中使用 ExcelUtil 读取 Excel 文件中的所有内容,可以按照以下步骤进行操作:
1. 导入 ExcelUtil 库,例如:
```
import cn.hutool.poi.excel.ExcelUtil;
```
2. 使用 ExcelUtil 的 `readExcel` 方法读取 Excel 文件,将数据存储到一个二维列表中,例如:
```
List<List<Object>> data = ExcelUtil.readExcel(file);
```
其中 `file` 为 Excel 文件的路径或文件对象。
3. 遍历二维列表,获取每一行数据,例如:
```
for (List<Object> row : data) {
// 处理每一行数据
}
```
4. 在循环中可以使用 `row.get(columnIndex)` 方法获取每一列的数据,例如:
```
String name = (String) row.get(0); // 第一列
int age = (int) row.get(1); // 第二列
double score = (double) row.get(2); // 第三列
```
注意,ExcelUtil 默认会跳过空行,因此读取到的数据列表中可能包含空列表。另外,ExcelUtil 会自动根据单元格类型进行类型转换,因此在获取数据时需要注意数据类型的匹配。
完整示例代码如下:
```
import cn.hutool.poi.excel.ExcelUtil;
import java.util.List;
public class ExcelReader {
public static void main(String[] args) {
String file = "path/to/excel.xlsx";
List<List<Object>> data = ExcelUtil.readExcel(file);
for (List<Object> row : data) {
String name = (String) row.get(0);
int age = (int) row.get(1);
double score = (double) row.get(2);
System.out.println(name + ", " + age + ", " + score);
}
}
}
```
用java语言统计一个文件夹中所有java文件的个数,统计所有子文件夹中java文件中,以及这些java文件中除去空行和只有空格的行数
以下是一个示例代码,可以实现统计一个文件夹中所有 java 文件的个数,以及统计所有子文件夹中 java 文件中除去空行和只有空格的行数:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class JavaFileStats {
private static int javaFileCount = 0; // 统计 java 文件个数
private static int totalLines = 0; // 统计所有 java 文件的总行数
private static int validLines = 0; // 统计所有 java 文件中除去空行和只有空格的行数
public static void main(String[] args) {
File dir = new File("D:\\example"); // 指定要统计的文件夹
JavaFileStats.countJavaFiles(dir);
System.out.println("Java file count: " + javaFileCount);
System.out.println("Total lines: " + totalLines);
System.out.println("Valid lines: " + validLines);
}
private static void countJavaFiles(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile() && file.getName().endsWith(".java")) {
// 如果是 java 文件,统计文件个数,并计算文件的行数和有效行数
javaFileCount++;
countFileLines(file);
} else if (file.isDirectory()) {
// 如果是目录,递归遍历子文件夹
countJavaFiles(file);
}
}
}
private static void countFileLines(File file) {
int lines = 0;
int valid = 0;
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
lines++;
if (!line.trim().isEmpty()) {
valid++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
totalLines += lines;
validLines += valid;
}
}
```
在上面的示例中,我们使用递归的方式遍历指定文件夹下的所有文件和子文件夹。对于每个 java 文件,我们使用 `BufferedReader` 读取文件内容,并统计文件的总行数和有效行数。其中,有效行数指除去空行和只有空格的行数。
最后,我们输出统计结果,包括 java 文件个数、所有 java 文件的总行数、所有 java 文件中有效行数。
阅读全文