Vad är filformatet PROPERTIES?
Filer med filändelsen .properties används av Java-teknik för att lagra egenskaper och konfigurerbara applikationsparametrar. De kan också innehålla strängar för internationalisering och lokalisering, vilket gör dem till ett standardformat för i18n-meddelandebuntar i Java-applikationer och ramverk som Spring.
Varje rad i en .properties-fil innehåller en enskild parameter. Varje parameter lagras som ett par av strängar - den första innehåller namnet på parametern (kallad nyckel) och den andra innehåller dess värde. Nycklar och värden separeras av =, :, eller blanksteg. Rader som börjar med # eller ! behandlas som kommentarer och ignoreras av tolken. Ett avslutande bakåtlutande snedstreck (\\) i slutet av en rad fortsätter värdet på nästa rad.
Som standard är .properties-filer kodade i ISO-8859-1 (Latin-1). Icke-latinska tecken måste skrivas som \\uXXXX Unicode-escape-sekvenser - till skillnad från YAML-filer eller XML-filer, som har inbyggt stöd för UTF-8. Java 9 introducerade stöd för att ladda .properties-filer i UTF-8 när en explicit teckenuppsättning anges.
Redigera .properties-filer
.properties-filer kan fritt ändras med valfri textredigerare. Det finns dock mer avancerade verktyg för filredigering tillgängliga, utrustade med ytterligare funktioner som inte stöds av vanliga textredigerare. Att använda dessa verktyg möjliggör:
- datavalidering
- skapande av nya nycklar
- synkronisering av nyckelnamn mellan olika språkfiler
- automatisk, tvåvägs konvertering av icke-ASCII-symboler till och från
\\uXXXX-escapes - integration med Eclipse
Ytterligare information
.properties-filer nås i Java-applikationer via klassen java.util.Properties. De paketeras vanligtvis som classpath-resurser inuti JAR- eller WAR-arkiv och laddas vid körning - det finns ingen fast standardkatalog för dem. Formatet .ini tjänar en liknande roll i icke-Java-miljöer, medan .env-filer ofta används i moderna containeriserade driftsättningar.
Säkerhet & trygghet
RISK: LOWEn .properties-fil är klartext och kan inte exekvera kod, så det är säkert att öppna en. Två verkliga orosmoln: (1) de innehåller ofta hemligheter - databaslösenord, API-nycklar, anslutningssträngar - så klistra inte in dem i otillförlitliga onlineverktyg och checka inte in dem i publika repon. (2) Redigeringsrisk: ett stavfel, fel kodning (att spara UTF-8 där ISO-8859-1 förväntas kan förvränga accenter) eller ett herrelöst tecken kan hindra Java-appen från att starta. Säkerhetskopiera alltid originalet innan du ändrar ett värde.
Formatdetaljer
i ett nötskalProgram som öppnar PROPERTIES-filer
Tekniska detaljer
djup specifikation| Standardkodning | ISO-8859-1 (Latin-1) |
| UTF-8-stöd | Tillgängligt från Java 9+ via explicit charset-argument till Properties.load() |
| Icke-ASCII-tecken | Måste representeras som \uXXXX Unicode-escape-sekvenser vid användning av ISO-8859-1-kodning |
| Nyckel-värde-separator | =, :, eller oeskapat blanksteg - den första förekomsten delar nyckel från värde |
| Kommentarsyntax | # eller ! i början av en rad |
| Radfortsättning | Ett avslutande \ sammanfogar nästa rad med det aktuella värdet; inledande blanksteg på fortsättningsraden tas bort |
| Trimning av blanksteg | Inledande blanksteg före nycklar och mellan separator och värde tas automatiskt bort |
| Beteende vid dubblettnycklar | Tillåts av tolken; den sista definitionen skriver tyst över tidigare |
| Java API-klass | java.util.Properties |
| MIME-typ | text/plain |
| Magic bytes / signatur | Ingen - klartext utan binär header; identifieras genom filändelse och nyckel=värde-radstruktur |
| Escape-sekvenser som stöds | \n, \t, \r, \\, \ (eskapat mellanslag i nycklar/värden), \uXXXX |
| Utvecklare / underhållare | Sun Microsystems / Oracle (del av Java-plattformen) |
| Vanlig driftsättning | Paketeras som classpath-resurser inuti JAR- eller WAR-arkiv; laddas vid körning via getResourceAsStream() |
| Ekosystemadoption | Används av Java SE, Spring Framework, Android (legacy), Apache Ant, Maven och många tredjepartsverktyg |
| Släppt | 1996 (Java 1.0, java.util.Properties) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | docs.oracle.com |
PROPERTIES-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om PROPERTIES-filer.