回 帖 发 新 帖 刷新版面

主题:有关输入的问题

这贴我都发第三遍了,怎么都没人理阿,前辈们,帮小弟一把吧,在线等。
有一个文本文档,名字为1.txt,在project根目录下,其中只存了一个4*4的矩阵,形如:
1001.24     5.127    6.815   ........
2.158          4.167    7.598   ........
........
........
矩阵元素为float类型,现在就是想读取这个文本文档,
把其中的元素赋给一个新声明的4*4的矩阵matrix1的对应元素。
各位前辈,请问这段代码该怎么写呀,我运行的时候老是出错,
老是显示出一些后面带E的数字,下面是我写的程序,前辈们帮
我看看吧,是哪里出了问题,
package helloworld;
import java.io.*;
public class txtmatrixdatainput {
    public static void main(String[]args) throws IOException{
    DataInputStream din = null;

    try{
    FileInputStream readfile=new FileInputStream("1.txt");
        float matrix1[][];
        matrix1=new float[1000][1000];
        din = new DataInputStream(readfile);
        int i;
        int j;
    while (true) {
        for(i=0;i<1000;i++){
            for(j=0;j<1000;j++){
            
                matrix1[i][j]=din.readFloat( );
             
             
         }
         }
         }
         }
        
           catch (EOFException ex) {
             //normal termination
            din.close( );
           }
           catch (IOException ex) {
             // abnormal termination
             System.err.println(ex);
           }
     }
   }

回复列表 (共1个回复)

沙发

用Data流读入的文件的内容必须是用Data流写进去的,你这样读是不行的,我把你程序改了一下:
import java.io.*;
class txtmatrixdatainput 
{ public static void main(String[]args) throws IOException
  {
    DataInputStream din = null;
    try
    {
        FileInputStream readfile=new FileInputStream("1.txt");
        float matrix1[][];
        matrix1=new float[4][4];
        //din = new DataInputStream(readfile);
        int i;
        int j;
        byte []b=new byte[readfile.available()];
        readfile.read(b);
        String str=new String(b);
        System.out.println(str);//在此输出
    }
    catch (EOFException ex) 
    { din.close( ); }
    catch (IOException ex) 
    { System.err.println(ex); }
   }
}
这次输出的内容就和1.txt里的内容是一样的,这里输出的字符串,接下来就是把每个数字从字符串里提取出来,在存到二维数组的相应位置里去,这个工作就你自己做了,如有问题我们再探讨探讨

我来回复

您尚未登录,请登录后再回复。点此登录或注册