2013-07-26 17 views
19

Sono un neofita della programmazione in Scala e volevo leggere un file delle proprietà in Scala.come leggere il file delle proprietà in scala

Non riesco a trovare alcuna API per leggere un file di proprietà in Scala.

Per favore fatemi sapere se ci sono delle API per questo o altro modo di leggere i file delle proprietà in Scala.

risposta

5

È possibile utilizzare semplicemente lo Java API.

17

Dovrai farlo in modo simile con Scala Map a java.util.Map. java.util.Properties estende java.util.HashTable che si estende java.util.Dictionary.

scala.collection.JavaConverters ha funzioni per convertire avanti e indietro da Dictionary alla 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() 

È quindi possibile utilizzare Map sopra. Per ottenere e recuperare. Ma se si desidera convertirlo di nuovo in tipo Properties (per memorizzare nuovamente, ecc.), Potrebbe essere necessario digitare manualmente il cast.

21

Oltre all'API Java, esiste una libreria di Typesafe denominata config con una buona API per lavorare con file di configurazione di tipi diversi.

0

consideri qualcosa sulla falsariga

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

seguendo l'approccio di Raul, è necessario analizzare la riga e ottenere il valore dopo i =, questo funziona per me:

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

Lo stesso cosa, seleziona la linea e la dividi per =, otterrai una matrice [String], quindi scegli il valore dopo =, intendo il secondo elemento dell'array

Problemi correlati