Überprüfen, ob Datei existiert und hat die erforderlichen Eigenschaften
Ich geschrieben habe, der code Balg zu überprüfen, ob eine Eigenschaften-Datei existiert und hat die geforderten Eigenschaften. Wenn es vorhanden ist, druckt es die Meldung, dass die Datei existiert und ist intakt, wenn nicht, dann schafft es die properties-Datei mit den erforderlichen Eigenschaften.
Was ich wissen wollte ist, gibt es eine elegantere Möglichkeit dies zu tun, oder ist mein so ziemlich der beste Weg? Auch das kleine problem, dass ich habe ist, dass mit diesem Weg, es überprüft nicht die für zusätzliche Eigenschaften, die nicht dort sein sollte, gibt es eine Möglichkeit, das zu tun?
Zusammenfassung meiner Anforderungen:
- Überprüfen, ob die Datei existiert
- Überprüfen, ob es die erforderlichen Eigenschaften
- Überprüfen, ob es zusätzliche Eigenschaften
- Erstellen Sie die Datei mit den erforderlichen Eigenschaften, wenn es nicht vorhanden ist oder wenn es zusätzliche oder fehlende Eigenschaften
Source Dateien und Netbeans-Projekt herunterladen
Quelle:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;
public class TestClass {
public static void main(String[] args) {
File propertiesFile = new File("config.properties");
if (propertiesFile.exists() && propertiesExist(propertiesFile)) {
System.out.println("Properties file was found and is intact");
} else {
System.out.println("Properties file is being created");
createProperties(propertiesFile);
System.out.println("Properties was created!");
}
}
public static boolean propertiesExist(File propertiesFile) {
Properties prop = new Properties();
InputStream input = null;
boolean exists = false;
try {
input = new FileInputStream(propertiesFile);
prop.load(input);
exists = prop.getProperty("user") != null
&& prop.getProperty("pass") != null;
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return exists;
}
public static void createProperties(File propertiesFile)
{
Properties prop = new Properties();
OutputStream output = null;
try {
output = new FileOutputStream(propertiesFile);
prop.setProperty("user", "username");
prop.setProperty("pass", "password");
//save properties to project root folder
prop.store(output, null);
} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
InformationsquelleAutor Aki K | 2014-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
dies ist mein Weg. (nicht sicher, ob eleganter, aber es kann eine inspiration sein/unterschiedliche Herangehensweise)
Try/catch-sollte genug sein, um zu sehen, ob die Datei vorhanden ist oder nicht
Code, der überprüft Ihren geladenen prop:
Benutze ich
tmp
ein neues Eigenschaften-variable, um zu vergleichen ,aber daskey
variable ein string so in dieif
- Anweisung können Sie es vergleichen, um ein array von Zeichenketten, und die Art und Weise Sie tun es ist bis zu Ihnen.InformationsquelleAutor Saša Zejnilović