Webサーバーを実行していて、txt設定ファイルを読み込み、ポート番号、ディレクトリ、デフォルトのindex.htmlファイルなどを割り当てる必要があります。しかし、index.htmlをチェックすると、ファイルが存在するにもかかわらず存在しないということが続きます。ファイルが存在する場合でもJava Files.exists()はfalseを返します
txtファイルがこれを含んでいます
port=80
directory=c:\www
index=index.html
listing=true
connexions=5
私は、ファイルのパーミッションをチェックし、ブロックされていないようです。 私は.exists()
とgetAbsoluteFile().Exists()
の両方を試してみましたが、ファイルを読み込むためのコード場合の両方がここで偽 を返す:
try {
BufferedReader br = new BufferedReader(new FileReader(config));
while((line = br.readLine()) != null){
tokens = line.split("=");
if(tokens.length > 1) {
switch (tokens.length) {
case 0:
if (Integer.parseInt(tokens[1]) > 0 && Integer.parseInt(tokens[1]) < 65535) {
portNumber = Integer.parseInt(tokens[1]);
param++;
} else {
System.err.println("Port in config file is invalid.");
System.exit(1);
}
break;
case 1:
File check = new File(tokens[1]);
if (check.getAbsoluteFile().exists()) {
rootPath = path ? args[1] : tokens[1];
param++;
} else {
System.err.println("Specified directory doesn't exist in config file");
System.exit(1);
}
break;
case 2:
File checkFile = new File(rootPath + "\\" + tokens[1]);
if (checkFile.getAbsoluteFile().exists()) {
indexFile = tokens[1];
param++;
} else {
System.err.println("Index file in config file doesn't exist.");
System.exit(1);
}
break;
case 3:
if (tokens[1].toLowerCase().equals("true") || tokens[1].toLowerCase().equals("false")) {
list = tokens[1].equals("true");
param++;
} else {
System.err.println("Can't validate the list parameter in config file.");
System.exit(1);
}
break;
case 4:
if (Integer.parseInt(tokens[1]) > 0) {
connNumber = Integer.parseInt(tokens[1]);
param++;
} else {
System.err.println("Number of connexions in config file is invalid.");
System.exit(1);
}
break;
default:
break;
}
}
else{
System.err.println("Missing arguments in config file.");
System.exit(1);
}
}
check.getAbsoluteFile()。exists()を実行する前にファイルパスの値を直接ポストしてください。たぶんそのパスのフォーマットに失敗した – whymatter