Java で構成ファイルを作成しようとしていますが、HTTP Web サーバーが接続するためのポート番号とルート パスをその中に入れています。
構成ファイル:
root= some root
port=8020
私はこのようなプロパティにアクセスしようとしています:
FileInputStream file = new FileInputStream("config.txt");
//loading properties from properties file
config.load(file);
int port = Integer.parseInt(config.getProperty("port"));
System.out.println("this is port " + port);
メソッドで単一のパラメーターを使用して実行すると、getProperty
このエラーが発生します
"java.lang.NumberFormatException: null"
ただし、このようにアクセスすると
int port = Integer.parseInt(config.getProperty("port", "80"));
できます。
また、それは動作するconfig.getProperty("root");
ので、私は理解していません...
編集:
import java.net.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.*;
public class Server
{
public static void main(String[] args) throws Exception
{
boolean listening = true;
ServerSocket server = null;
Properties config = new Properties();
int port = 0;
try
{
//Reading properties file
FileInputStream file = new FileInputStream("config.txt");
//loading properties from properties file
config.load(file);
port = Integer.parseInt(config.getProperty("port"));
System.out.println("this is port " + port);
System.out.println("Server binding to port " + port);
server = new ServerSocket(port);
}
catch(FileNotFoundException e)
{
System.out.println("File not found: " + e);
}
catch(Exception e)
{
System.out.println("Error: " + e);
System.exit(1);
}
System.out.println("Server successfully binded to port " + port);
while(listening)
{
System.out.println("Attempting to connect to client");
Socket client = server.accept();
System.out.println("Successfully connected to client");
new HTTPThread(client, config).start();
}
server.close();
}
}