导读
做实验经常会遇到需要读取文本类型的实验数据集,有时候没有sklearn或者weka那种自带输入输出的框架需要手写输入输出,因此做一个记录。
文件类型示意
以经典的天气预测数据集的txt类型为例,分隔符为空格或者逗号皆可:
OutLook Temperature Humidity Wind PlayTennis
Sunny Hot High Weak No
Sunny Hot High Strong No
Overcast Hot High Weak Yes
Rainy Mild High Weak Yes
Rainy Cool Normal Weak Yes
Rainy Cool Normal Strong No
Overcast Cool Normal Strong Yes
Sunny Mild High Weak No
Sunny Cool Normal Weak Yes
Rainy Mild Normal Weak Yes
Sunny Mild Normal Strong Yes
Overcast Mild High Strong Yes
Overcast Hot Normal Weak Yes
Rainy Mild High Strong No
代码
package Utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class readTXT {
public static void main(String[] args) throws Exception{
//文件地址
String filePath = "src/这里改成具体的包名/input.txt";
//生成对象
File file = new File(filePath);
//文件行数量
int rowNum=0;
//临时变量
String str1;
BufferedReader cal = new BufferedReader(new FileReader(file));
while ((str1 = cal.readLine()) != null) {
rowNum++;//计算行数
}
cal.close();
//存储TXT的数组
String[][] TXT = new String[rowNum][];
BufferedReader in = new BufferedReader(new FileReader(file));
String str;
String[] array;
int i=0;
while ((str = in.readLine()) != null) {
array = str.split(" ");//如果是csv一般就改成逗号、tab、减号等
TXT[i] = array;
i++;
}
in.close();
//打印展示
for(int row=0;row<rowNum;row++){
for(int j=0;j<TXT[0].length;j++){
System.out.print(TXT[row][j]+" ");
}
System.out.println();
}
}
}