我有两个课程:main.java
和data.java
。编程需要首先从data.txt文件中读取数据。它适用于Windows系统。但现在我使用ssh链接linux服务器进行编译,但它不起作用。
我将main.java
,data.java
,data.txt
放在同一个文件夹中。运行后javac data.java && javac main.java
概括了6个类:main.class
,data.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");
答案 0 :(得分:0)
字符编码和不同的行结尾可能起作用。
BufferedReader.readLine 将删除可能的行结尾。
可以明确设置字符集,例如设置为"Windows-1252"
,Windows Latin-1。为此用途
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(file, "Windows-1252");