很多程序中都会用到矩阵数据源,Java采用输入流的方式从文本文件中读入。输入流分为字符流和字节流,字符流用于读入字符,字节流可读入多种数据类型,如double,int,float等。
一个普通的文本文件里若储存的是人工输入的数字,采用字节输入流读入的实际是其ascii码,而不是单个数据,尤其是小数类型的数据。例如,文本文件中的3.18,读入的实际是“3.18”的字符串的ascii码。将一个以小数为元素的矩阵数据从文本文件中读入,思路为首先将单个数据以字符串的形式读入,然后转化为double型。通常在Java语言中,浮点数常量默认为double型,除非明确指定为float类型,如3.18F。
输出流中将一个数字存入文本文件中,在文本文件中显示出来的将是以该数字为ascii码的字符,这时候打开文本文件看到的一般是乱码。所以字节输入流多用于读取这种情况下存入的数据,此时不需要数据类型的变换即可。
下面详细介绍一下读入数据的类,我不是一个专业的程序员,这个程序是自己写的,可能存在很多不合理的地方,欢迎给出意见。
我的文本文件中的数据是这样的:
# 2.5 2.3 5.6 8.9 4.1
# 2.6 5.9 6.9 5.2 6.9
# 5.6 5.6 8.0 5.4 8.4
……
程序如下:
import java.io.*;
import java.util.*;
public class read_source
{
final int EOF=-1;
private doub