Wat is het PROPERTIES-bestandsformaat?
Bestanden met de extensie .properties worden door Java-technologie gebruikt om eigenschappen en configureerbare applicatieparameters op te slaan. Ze kunnen ook strings bevatten voor internationalisering en lokalisatie, waardoor ze een standaardformaat zijn voor i18n-berichtbundels in Java-applicaties en frameworks zoals Spring.
Elke regel in een .properties-bestand bevat een enkele parameter. Elke parameter wordt opgeslagen als een paar strings - de eerste bevat de naam van de parameter (een „key” of sleutel genoemd) en de tweede bevat de waarde ervan. Sleutels en waarden worden gescheiden door =, :, of witruimte. Regels die beginnen met # of ! worden behandeld als commentaar en genegeerd door de parser. Een afsluitende backslash (\\) aan het einde van een regel zet de waarde voort op de volgende regel.
Standaard zijn .properties-bestanden gecodeerd in ISO-8859-1 (Latin-1). Niet-Latijnse tekens moeten worden geschreven als \\uXXXX Unicode-escape-sequenties - in tegenstelling tot YAML-bestanden of XML-bestanden, die standaard UTF-8 ondersteunen. Java 9 introduceerde ondersteuning voor het laden van .properties-bestanden in UTF-8 wanneer een expliciete tekenset wordt opgegeven.
Bewerken van .properties-bestanden
.properties-bestanden kunnen vrij worden gewijzigd met elke tekstverwerker. Er zijn echter ook geavanceerdere tools voor bestandsbewerking beschikbaar, uitgerust met extra functies die niet worden ondersteund door gewone tekstverwerkers. Het gebruik van deze tools maakt het volgende mogelijk:
- datavalidatie
- aanmaken van nieuwe sleutels
- synchroniseren van sleutelnamen over verschillende lokalisatiebestanden
- automatische, tweerichtingsconversie van niet-ASCII-symbolen naar en van
\\uXXXX-escapes - integratie met Eclipse
Aanvullende informatie
.properties-bestanden worden in Java-applicaties benaderd via de klasse java.util.Properties. Ze worden meestal gebundeld als classpath-bronnen binnen JAR- of WAR-archieven en geladen tijdens runtime - er is geen vaste standaardmap voor. Het .ini-formaat dient een vergelijkbare rol in niet-Java-omgevingen, terwijl .env-bestanden vaak worden gebruikt in moderne gecontaineriseerde implementaties.
Beveiliging & veiligheid
RISICO: LOWEen .properties-bestand is platte tekst en kan geen code uitvoeren, dus het openen ervan is veilig. Twee belangrijke aandachtspunten: (1) ze bevatten vaak geheimen - database-wachtwoorden, API-sleutels, verbindingsstrings - plak ze dus niet in onbetrouwbare online tools en commit ze niet naar publieke repositories. (2) Risico bij bewerken: een typefout, verkeerde codering (UTF-8 opslaan waar ISO-8859-1 wordt verwacht kan accenten verminken) of een verdwaald teken kan voorkomen dat de Java-app opstart. Maak altijd een back-up van het origineel voordat u een waarde wijzigt.
Formaatdetails
in een notendopProgramma's die PROPERTIES-bestanden openen
Technische details
diepe specificaties| Standaard codering | ISO-8859-1 (Latin-1) |
| UTF-8 ondersteuning | Beschikbaar vanaf Java 9+ via expliciet charset-argument bij Properties.load() |
| Niet-ASCII tekens | Moeten worden weergegeven als \uXXXX Unicode-escape-sequenties bij gebruik van ISO-8859-1 codering |
| Sleutel-waarde scheidingsteken | =, :, of niet-geescapte witruimte - de eerste instantie splitst de sleutel van de waarde |
| Commentaar syntaxis | # of ! aan het begin van een regel |
| Regelvoortzetting | Een afsluitende \ voegt de volgende regel samen met de huidige waarde; leidende witruimte op de vervolgregel wordt verwijderd |
| Witruimte trimmen | Leidende witruimte voor sleutels en tussen het scheidingsteken en de waarde wordt automatisch verwijderd |
| Gedrag bij dubbele sleutels | Toegestaan door de parser; de laatste definitie overschrijft stilletjes de eerdere |
| Java API-klasse | java.util.Properties |
| MIME-type | text/plain |
| Magic bytes / handtekening | Geen - platte tekst zonder binaire header; geïdentificeerd door bestandsextensie en sleutel=waarde-regelstructuur |
| Ondersteunde escape-sequenties | \n, \t, \r, \\, \ (geescapte spatie in sleutels/waarden), \uXXXX |
| Ontwikkelaar / beheerder | Sun Microsystems / Oracle (onderdeel van het Java-platform) |
| Veelvoorkomende implementatie | Gebundeld als classpath-bronnen binnen JAR- of WAR-archieven; geladen tijdens runtime via getResourceAsStream() |
| Ecosysteem adoptie | Gebruikt door Java SE, Spring Framework, Android (legacy), Apache Ant, Maven en vele tools van derden |
| Uitgebracht | 1996 (Java 1.0, java.util.Properties) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | docs.oracle.com |
PROPERTIES conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over PROPERTIES-bestanden.