10

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();
    }

}
4

3 に答える 3

16

問題を再現するための自己完結型の例を提供できますか?

すみません、わかりません

私が走るとき

Properties prop = new Properties();
prop.setProperty("root", "some root");
prop.setProperty("port", "8020");
prop.store(new FileWriter("config.txt"), "test");

Properties config = new Properties();
//loading properties from properties file
config.load(new FileReader("config.txt"));

int port = Integer.parseInt(config.getProperty("port"));
System.out.println("this is port " + port);

私は得る

this is port 8020
于 2012-10-12T11:50:16.607 に答える