Hva er PROPERTIES-filformatet?
Filer med filendelsen .properties brukes av Java-teknologi for å lagre egenskaper og konfigurerbare applikasjonsparametere. De kan også inneholde strenger for internasjonalisering og lokalisering, noe som gjør dem til et standardformat for i18n-meldingsbunter i Java-applikasjoner og rammeverk som Spring.
Hver linje i en .properties-fil inneholder én enkelt parameter. Hver parameter lagres som et par av strenger - den første inneholder navnet på parameteren (kalt en nøkkel) og den andre inneholder verdien. Nøkler og verdier skilles med =, :, eller mellomrom. Linjer som starter med # eller ! behandles som kommentarer og ignoreres av parseren. En omvendt skråstrek (\\) på slutten av en linje fortsetter verdien på neste linje.
Som standard er .properties-filer kodet i ISO-8859-1 (Latin-1). Ikke-latinske tegn må skrives som \\uXXXX Unicode-escape-sekvenser - i motsetning til YAML-filer eller XML-filer, som har innebygd støtte for UTF-8. Java 9 introduserte støtte for lasting av .properties-filer i UTF-8 når et eksplisitt tegnsett er oppgitt.
Redigering av .properties-filer
.properties-filer kan fritt endres med et hvilket som helst tekstredigeringsprogram. Imidlertid finnes det også mer avanserte verktøy for filredigering, utstyrt med tilleggsfunksjoner som ikke støttes av vanlige tekstredigeringsprogrammer. Bruk av disse verktøyene muliggjør:
- datavalidering
- oppretting av nye nøkler
- synkronisering av nøkkelnavn på tvers av lokaliseringsfiler
- automatisk, toveis konvertering av ikke-ASCII-symboler til og fra
\\uXXXX-escapes - integrasjon med Eclipse
Tilleggsinformasjon
.properties-filer aksesseres i Java-applikasjoner gjennom klassen java.util.Properties. De er vanligvis pakket som classpath-ressurser inne i JAR- eller WAR-arkiver og lastes ved kjøretid - det er ingen fast standardmappe for dem. .ini-formatet tjener en lignende rolle i ikke-Java-miljøer, mens .env-filer er vanlig brukt i moderne containeriserte distribusjoner.
Sikkerhet og trygghet
RISIKO: LOWEn .properties-fil er ren tekst og kan ikke kjøre kode, så det er trygt å åpne en. To reelle bekymringer: (1) de inneholder ofte hemmeligheter - databasepassord, API-nøkler, tilkoblingsstrenger - så ikke lim dem inn i upålitelige nettverktøy eller send dem til offentlige kodelagre. (2) Risiko ved redigering: en skrivefeil, feil koding (lagring av UTF-8 der ISO-8859-1 forventes kan ødelegge aksenter), eller et tilfeldig tegn kan hindre Java-appen i å starte. Ta alltid sikkerhetskopi av originalen før du endrer en verdi.
Formatdetaljer
i et nøtteskallProgrammer som åpner PROPERTIES-filer
Tekniske detaljer
dyp spesifikasjon| Standard koding | ISO-8859-1 (Latin-1) |
| UTF-8-støtte | Tilgjengelig fra Java 9+ via eksplisitt tegnsett-argument til Properties.load() |
| Ikke-ASCII-tegn | Må representeres som \uXXXX Unicode-escape-sekvenser ved bruk av ISO-8859-1-koding |
| Nøkkel-verdi-separator | =, :, eller uescapet mellomrom - den første forekomsten skiller nøkkel fra verdi |
| Kommentarsyntaks | # eller ! i starten av en linje |
| Linjefortsettelse | En avsluttende \ føyer neste linje til den gjeldende verdien; innledende mellomrom på fortsettelseslinjen fjernes |
| Trimming av mellomrom | Innledende mellomrom før nøkler og mellom separator og verdi fjernes automatisk |
| Håndtering av duplikate nøkler | Tillatt av parseren; den siste definisjonen overskriver lydløst de tidligere |
| Java API-klasse | java.util.Properties |
| MIME-type | text/plain |
| Magic bytes / signatur | Ingen - ren tekst uten binær header; identifiseres ved filendelse og nøkkel=verdi-linjestruktur |
| Støttede escape-sekvenser | \n, \t, \r, \\, \ (escapet mellomrom i nøkler/verdier), \uXXXX |
| Utvikler / vedlikeholder | Sun Microsystems / Oracle (del av Java-plattformen) |
| Vanlig distribusjon | Pakket som classpath-ressurser inne i JAR- eller WAR-arkiver; lastes ved kjøretid via getResourceAsStream() |
| Økosystem-adopsjon | Brukt av Java SE, Spring Framework, Android (legacy), Apache Ant, Maven og mange tredjepartsverktøy |
| Utgitt | 1996 (Java 1.0, java.util.Properties) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | docs.oracle.com |
PROPERTIES-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om PROPERTIES-filer.