0

我有两个班级:main.javadata.java。编程需要先从 data.txt 文件中读取数据。它适用于Windows系统。但是现在我使用 ssh 链接一个 linux 服务器进行编译,它不起作用。

我把main.java, data.java,data.txt放在同一个文件夹中。运行后javac data.java && javac main.java概括 6 类:main.classdata.class以及在 . 中定义的一些类main.java。最后我跑了java main,否则java main && java data一切都说明了NullPointerException

data.txt我使用的代码中的链接./data.txt

也许他们不能放在同一个文件夹中,或者其他一些原因。请帮我。

先感谢您。

部分代码data.java

import java.io.EOFException;

import java.io.FileReader;

import java.io.IOException;
import java.io.LineNumberReader;   
import java.util.StringTokenizer;

public class data{

    private LineNumberReader in; 
    String filename;

    public data(String file){
        filename = file;
        readProblem(); 
        readdis();
        read();
    }
 }

部分代码main.java

import java.util.*;
import java.io.*;

class main{
    public static void main (String[] args) {   
        //Define parameters of the algorithm   
        String file = new String("./data.txt");   
4

1 回答 1

0

字符编码和不同的行尾可能会起作用。

A BufferedReader.readLine将去除可能的行尾。

字符集可以显式设置,例如"Windows-1252",Windows Latin-1。对于那个用途

BufferedReader in = new BufferedReader(new InputStreamReader(
        new FileInputStream(file, "Windows-1252");
于 2012-09-13T08:06:54.797 回答