⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textdatafilereader.java

📁 读取文本数据文件,将读取的内容存放到数组中.
💻 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 + -