繁体   English   中英

需要serversocket逐个字符地将文本文件读取为二维数组

[英]need serversocket to read a text file into 2d array character by character

我必须让我的套接字将80x80文本文件读入80x80 2d数组。 它必须一个字符一个字符,并且结果数组必须是文本文件布局的副本,因为它将用于在迷宫中移动鼠标。 我尝试使用readNext,但是我意识到它的返回类型是int,nextLine会将整行记录到一个索引中。 我卡住了,我发现的每一个其他帖子都在将单词或整数读入数组。 如果您有时间,套接字的协议将是:

     ooo
     wmw
     wpw

因此基本上,o =迷宫之外,m =鼠标,w = wall和p = path,服务器需要在鼠标每次移动后发送3x3快照,以显示鼠标在80x80迷宫中的位置。 即时通讯在解决问题时全神贯注。 所以无论如何,这是到目前为止我所获得的服务器套接字的代码。 想象一下一个80x80字符的文本文件,它以图形方式表示迷宫的路线,因为我无法真正复制并粘贴它。 我在代码中所需要做的就是用什么来填充数组以及来回发送协议的想法。 我可以稍后再进行通讯

public class serverSocket {


private static ServerSocket server = null;
public static void main (System [] args){

    File file = new File("\\MAC\\Users\\Tucker\\mazehardcode.rtf");
    FileReader fr = new FileReader(file);
    char mazeFile [][]=new char[80][80];
    for(int i = 0;i <80;i++){
        for(int j = 0; j<80; j++){
            mazeFile[i][j]= fr.;
        }
    }
}
}

希望我能正确理解您的问题。 顺便说一句,您的rtf文件是纯文本格式吗?

    FileReader fr = null;
    try { 
        fr = new FileReader(new   File("\\MAC\\Users\\Tucker\\mazehardcode.rtf"));
        char[][] mazeFile = new char[80][80];
        for (int i = 0; i < 80; i ++) {
            fr.read(mazeFile[i]);

            // remove code below, just to verify read correctly
            for (char c : mazeFile[i]) {
                System.out.println(c);
            }

            // skip the \n, you have to skip 2 if in windows due to \r\n
            fr.skip(1);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM