0

私には2つのクラスがあります:main.javadata.java。プログラミングでは、最初にdata.txtファイルからデータを読み取る必要があります。Windowsシステムで動作します。しかし、今はsshを使用してLinuxサーバーをリンクしてコンパイルしているのですが、機能しません。

同じフォルダmain.javadata.java、、を入れました。data.txt実行後、javac data.java && javac main.java一般化6クラス:main.classdata.classおよびで定義されたいくつかのクラスmain.java。ついに実行するjava mainjava 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

文字エンコーディングと異なる行末が影響している可能性があります。

BufferedReader.readLineは可能な行末を取り除きます。

"Windows-1252"文字セットは、Windows Latin-1 などに明示的に設定できます。その用途に

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