Hvad er PROPERTIES-filformatet?
Filer med filtypen .properties bruges af Java-teknologi til at gemme egenskaber og konfigurerbare applikationsparametre. De kan også indeholde strenge til internationalisering og lokalisering, hvilket gør dem til et standardformat for i18n-meddelelsesbundter i Java-applikationer og frameworks som Spring.
Hver linje i en .properties-fil indeholder en enkelt parameter. Hver parameter gemmes som et par af strenge - den første indeholder navnet på parameteren (kaldet en nøgle), og den anden indeholder dens værdi. Nøgler og værdier adskilles af =, : eller blanktegn. Linjer, der starter med # eller !, behandles som kommentarer og ignoreres af parseren. En afsluttende omvendt skråstreg (\\) for enden af en linje fortsætter værdien på den næste linje.
Som standard er .properties-filer kodet i ISO-8859-1 (Latin-1). Ikke-latinske tegn skal skrives som \\uXXXX Unicode-escape-sekvenser - i modsætning til YAML-filer eller XML-filer, som har indfødt understøttelse af UTF-8. Java 9 introducerede understøttelse af indlæsning af .properties-filer i UTF-8, når et eksplicit tegnsæt er angivet.
Redigering af .properties-filer
.properties-filer kan frit ændres med ethvert tekstredigeringsprogram. Der findes dog også mere avancerede værktøjer til filredigering, som er udstyret med ekstra funktioner, der ikke understøttes af almindelige tekstredigeringsprogrammer. Brug af disse værktøjer muliggør:
- datavalidering
- oprettelse af nye nøgler
- synkronisering af nøglenavne på tværs af lokalitetsfiler
- automatisk, tovejs konvertering af ikke-ASCII-symboler til og fra
\\uXXXX-escapes - integration med Eclipse
Yderligere information
.properties-filer tilgås i Java-applikationer via klassen java.util.Properties. De er typisk pakket som classpath-ressourcer inde i JAR- eller WAR-arkiver og indlæses ved kørsel - der er ingen fast standardmappe for dem. .ini-formatet tjener en lignende rolle i ikke-Java-miljøer, mens .env-filer almindeligvis bruges i moderne containeriserede implementeringer.
Sikkerhed og tryghed
RISIKO: LOWEn .properties-fil er almindelig tekst og kan ikke eksekvere kode, så det er sikkert at åbne en. To reelle bekymringer: (1) de indeholder ofte hemmeligheder - databaseadgangskoder, API-nøgler, forbindelsesstrenge - så indsæt dem ikke i upålidelige onlineværktøjer eller commit dem til offentlige repos. (2) Risiko ved redigering: en tastefejl, forkert kodning (lagring i UTF-8, hvor ISO-8859-1 forventes, kan ødelægge accenter) eller et forkert tegn kan forhindre Java-appen i at starte. Tag altid backup af originalen, før du ændrer en værdi.
Formatdetaljer
kort fortaltProgrammer der åbner PROPERTIES-filer
Tekniske detaljer
dyb specifikation| Standardkodning | ISO-8859-1 (Latin-1) |
| UTF-8 understøttelse | Tilgængelig fra Java 9+ via eksplicit tegnsæt-argument til Properties.load() |
| Ikke-ASCII tegn | Skal repræsenteres som \uXXXX Unicode-escape-sekvenser ved brug af ISO-8859-1 kodning |
| Nøgle-værdi separator | =, : eller blanktegn uden escape - den første forekomst skiller nøgle fra værdi |
| Kommentarsyntaks | # eller ! i starten af en linje |
| Linjefortsættelse | En afsluttende \ føjer den næste linje til den aktuelle værdi; indledende blanktegn på fortsættelseslinjen fjernes |
| Trimning af blanktegn | Indledende blanktegn før nøgler og mellem separator og værdi fjernes automatisk |
| Håndtering af dublerede nøgler | Tilladt af parseren; den sidste definition overskriver lydløst de tidligere |
| Java API-klasse | java.util.Properties |
| MIME-type | text/plain |
| Magic bytes / signatur | Ingen - almindelig tekst uden binær header; identificeres ved filendelse og nøgle=værdi-linjestruktur |
| Understøttede escape-sekvenser | \n, \t, \r, \\, \ (escaped mellemrum i nøgler/værdier), \uXXXX |
| Udvikler / vedligeholder | Sun Microsystems / Oracle (del af Java-platformen) |
| Almindelig implementering | Pakket som classpath-ressourcer inde i JAR- eller WAR-arkiver; indlæses ved kørsel via getResourceAsStream() |
| Økosystem-udbredelse | Brugt af Java SE, Spring Framework, Android (legacy), Apache Ant, Maven og mange tredjepartsværktøjer |
| Udgivet | 1996 (Java 1.0, java.util.Properties) |
| Åben standard | Ja · royaltyfri |
| Specifikation | docs.oracle.com |
PROPERTIES-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PROPERTIES-filer.