En iyi yanıtlayıcılar
.txt veya properties dosyalarında veri değiştirme

Soru
-
Elimde properties uzantılı dosyalar var txt şeklinde açılabiliyor.İçeriğinde key ve value değerleri var mesela şu şekilde örnek vereyim;
ürün=masa,
fiyatı=60,
Benim yapmak istediğim kod tarafında value değerini değiştirmek yani şu şekilde
ürün=sandalye
fiyatı=50
Properties dosyası java tarafından yapılan bir dosya ben .net ile müdahale etmek istiyorum. Nasıl bir yol izlemeliyim.
Teşekkürler
alican
Yanıtlar
-
Bildigim kadariyla java properties dosyalari o sekilde degil (sonunda virgul yok). Eger standard properties dosyalarindan bahsediyorsan (her property yalniz bir kere ve sonda virgul yok), soyle yapabilirsin:
void Main() { var propertyFile = @"c:\Dizin\dosya.properties"; var encoding = Encoding.UTF8; var degistir = "ürün=sandalye,fiyatı=50" .Split(',') .Select(x => x.Split('=')) .ToDictionary(x => x[0], x => x[1]); var properties = ReadProperties(propertyFile, encoding); foreach (var kvp in degistir) { if(properties.ContainsKey(kvp.Key)) properties[kvp.Key] = kvp.Value; else properties.Add(kvp.Key, kvp.Value); } var newProperties = properties.Select(p => $"{p.Key}={p.Value}"); File.WriteAllLines(propertyFile, newProperties, encoding); } public static Dictionary<string, string> ReadProperties(string fileName, Encoding encoding=null) { return File.ReadAllLines(fileName, encoding==null?Encoding.Default:encoding) .Select(l => l.Split('=')) .ToDictionary(l => l[0], l => l[1]); }
Not: Encoding ozellikle var cunku isin icinde Turkce karakterler var, o zaman dosyanin hangi encoding ile saklandigini bilmelisin. Bir de son satirda dosyanin uzerine degisiklikleri yazabilecegin var sayiliyor.
- Yanıt Olarak Öneren Halit YURTTAŞ 14 Ekim 2016 Cuma 07:06
- Yanıt Olarak İşaretleyen Ali Can Çapar 14 Ekim 2016 Cuma 17:33
Tüm Yanıtlar
-
Bildigim kadariyla java properties dosyalari o sekilde degil (sonunda virgul yok). Eger standard properties dosyalarindan bahsediyorsan (her property yalniz bir kere ve sonda virgul yok), soyle yapabilirsin:
void Main() { var propertyFile = @"c:\Dizin\dosya.properties"; var encoding = Encoding.UTF8; var degistir = "ürün=sandalye,fiyatı=50" .Split(',') .Select(x => x.Split('=')) .ToDictionary(x => x[0], x => x[1]); var properties = ReadProperties(propertyFile, encoding); foreach (var kvp in degistir) { if(properties.ContainsKey(kvp.Key)) properties[kvp.Key] = kvp.Value; else properties.Add(kvp.Key, kvp.Value); } var newProperties = properties.Select(p => $"{p.Key}={p.Value}"); File.WriteAllLines(propertyFile, newProperties, encoding); } public static Dictionary<string, string> ReadProperties(string fileName, Encoding encoding=null) { return File.ReadAllLines(fileName, encoding==null?Encoding.Default:encoding) .Select(l => l.Split('=')) .ToDictionary(l => l[0], l => l[1]); }
Not: Encoding ozellikle var cunku isin icinde Turkce karakterler var, o zaman dosyanin hangi encoding ile saklandigini bilmelisin. Bir de son satirda dosyanin uzerine degisiklikleri yazabilecegin var sayiliyor.
- Yanıt Olarak Öneren Halit YURTTAŞ 14 Ekim 2016 Cuma 07:06
- Yanıt Olarak İşaretleyen Ali Can Çapar 14 Ekim 2016 Cuma 17:33
-
Teşekkür ederim cevabınız için.Peki java ile yapılan properties dosyasını nasıl değiştiririm yani virgül olmadan nasıl olabilir.
Aslında yapmak istediğim işin java kodunu buldum ama nasıl projeye dahil edebilirim bir türlü başaramadım.
Java kodu şu şekilde
-
public class OrnekPropertiesKullanimi
-
{
-
public static void main( String[] args )
-
{
-
Properties prop = new Properties();
-
-
prop.setProperty("database", "localhost");
-
prop.setProperty("dbuser", "kullaniciAdi");
-
prop.setProperty("dbpassword", "sifre");
-
-
prop.store(new FileOutputStream("config.properties"), null);
-
-
-
}
-
}
alican
-
-
Variable=deger
biçiminde olmak zorunda mı? Properties uzantılı olmak zorunda mı? Siz Asp.Net kısmında açmışsınız konuyu ve derdinizde benim anladığım bir connection string bilgisini okumak. Bunun için ConfigurationManager var zaten asp.net'te onu kullanın.
http://pgnchess.com
http://dergikapaklari.com -
Teşekkür ederim cevabınız için.Peki java ile yapılan properties dosyasını nasıl değiştiririm yani virgül olmadan nasıl olabilir.
Aslında yapmak istediğim işin java kodunu buldum ama nasıl projeye dahil edebilirim bir türlü başaramadım.
Java kodu şu şekilde
-
public class OrnekPropertiesKullanimi
-
{
-
public static void main( String[] args )
-
{
-
Properties prop = new Properties();
-
-
prop.setProperty("database", "localhost");
-
prop.setProperty("dbuser", "kullaniciAdi");
-
prop.setProperty("dbpassword", "sifre");
-
-
prop.store(new FileOutputStream("config.properties"), null);
-
-
-
}
-
}
alican
-
-
-
-