📄 textdatafilereader.java
字号:
import java.io.*;
//fileName为数据文件名;regex为数据分隔符的正则表达式;columns为数据文件列数; errorMessage为错误信息; rowCount为文件行数。
//使用前必须给fileName、regex、columns赋值.
//regex为"[ \t]+",表示以一个或多个空格或制表符分隔数据。
public class TextDataFileReader {
private String fileName, regex, errorMessage;
private int columns, rowCount;
public TextDataFileReader() {
fileName = "";
errorMessage = "";
regex = "";
columns = 0;
}
public TextDataFileReader(String filename, String regex, int columns) {
this.fileName = filename;
errorMessage = "";
this.regex = regex;
this.columns = columns;
rowCount = 0;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public String getErrorMessage() {
return errorMessage;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getRegex() {
return regex;
}
public void setRegex(String regex) {
this.regex = regex;
}
public int getColumns() {
return columns;
}
public void setColumns(int columns) {
this.columns = columns;
}
public String[][] getContent() {
String[][] content;
String split[];
String inLine;
BufferedReader reader = null;
File file = new File(fileName);
if (!file.exists()) {
setErrorMessage("错误信息:文件" + fileName + "不存在!");
return null;
} else if (file != null) {
try {
reader = new BufferedReader(new FileReader(file));
while ((inLine = reader.readLine()) != null) {
rowCount++;
}
reader.close();
if (rowCount == 0)
return null;
content = new String[rowCount][columns];
reader = new BufferedReader(new FileReader(file));
int tempRow = 0, tempCol = 0;
while ((inLine = reader.readLine()) != null) {
split = inLine.split(regex);
if (split.length < columns)
tempCol = split.length;
else
tempCol = columns;
for (int i = 0; i < tempCol; i++) {
content[tempRow][i] = split[i];
}
tempRow++;
}
reader.close();
return content;
} catch (IOException e) {
setErrorMessage("文件读取错误! " + e.getMessage());
return null;
}
} else {
setErrorMessage("其它错误!");
return null;
}
}
}
//使用示例:
// 建立c:/text.txt,其内容为
// 1 2 3 4 5
// 6 7 8 9 10
class Test {
public static void main(String[] args) {
TextDataFileReader textFileReader;
textFileReader = new TextDataFileReader("c:/text.txt", "[ \t]+", 5);
String a[][];
a = textFileReader.getContent();
if(a==null){
System.out.println(textFileReader.getErrorMessage());
return;
}
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]);
System.out.print(" ");
}
System.out.println();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -