2013-07-26 15 views
19

Jestem nowym programistą Scala i chciałem przeczytać plik właściwości w Scala.jak odczytać plik właściwości w scala

Nie mogę znaleźć żadnych interfejsów API do odczytania pliku właściwości w Scali.

Proszę dać mi znać, jeśli istnieją jakieś API do tego lub innego sposobu odczytu plików właściwości w Scala.

Odpowiedz

17

Będziesz musiał zrobić to w podobny sposób, jak w przypadku Scala Map do java.util.Map. java.util.Properties rozszerza java.util.HashTable co rozszerza się o java.util.Dictionary.

scala.collection.JavaConverters posiada funkcje do konwersji do iz powrotem od Dictionary do Scala mutable.Map:

val x = new Properties 
//load from .properties file here. 
import scala.collection.JavaConverters._ 

scala> x.asScala 
res4: scala.collection.mutable.Map[String,String] = Map() 

Następnie można użyć Map powyżej. Aby uzyskać i pobrać. Ale jeśli chcesz przekonwertować go z powrotem na typ Properties (do przechowywania z powrotem itp.), Może być konieczne ręczne wpisanie go ręcznie.

21

Oprócz interfejsu API języka Java istnieje biblioteka Typesafe o nazwie config z dobrym interfejsem API do pracy z plikami konfiguracyjnymi różnych typów.

0

Rozważmy coś wzdłuż linii

def getPropertyX: Option[String] = Source.fromFile(fileName) 
    .getLines() 
    .find(_.startsWith("propertyX=")) 
    .map(_.replace("propertyX=", "")) 
-1

zgodnie z podejściem od Raul, trzeba zanalizować wiersz i uzyskać wartość po znaku =, to działa na mnie:

Source.fromFile(fileName) 
    .getLines() 
    .find(_.startsWith("version=")) 
    .get 
    .split("=")(1) 

To samo rzecz, wybierz linię i podziel ją przez =, otrzymasz Array [String], a następnie wybierz wartość after =, mam na myśli drugi element w tablicy