2009-10-20 16 views
8

In Java, können gemeinsame IO-Operationen mit Streams, Dateien und dergleichen etwas nervig sein. Daher tendiere ich (und viele andere) dazu, nach Dingen wie commons-io zu suchen, um den Schmerz zu lindern.Idiomatische IO mit Skala

In Scala - gibt es einige bessere Idiome/Klassen/Bibliotheken zu verwenden (ich kenne scala.io.Source etc zum Einlesen von Textdateien - aber was ist mit Streams etc). Ist es "normal", Bibliotheken wie commons-io in scala zu verwenden oder gibt es einen besseren Weg?

Antwort

4

zu diesem speziellen Thema einige Diskussionen über die Scala-Mailingliste waren. Und wenn ich mich richtig erinnere, kam nichts Konkretes aus ihnen heraus. In der Zwischenzeit sind Sie nicht in der Lage, Scalax zu überprüfen. scalax.io sieht sehr vielversprechend aus.

+0

Ist der obige Link veraltet? Wenn ich darauf zugreife, sagt es einfach "Es funktioniert nicht!" –

+0

Scala io finden Sie unter https://github.com/jesseeichar/scala-io – hvrauhal

5

Was über die Verwendung von:

Source.fromInputStream(is, "UTF8") 

Wie in:

for (line <- Source.fromInputStream(is, "UTF8").getLines) { 
    // process line here 
} 
+0

Ja, ich wusste davon, aber es ist nur für Text/Quelldateien geeignet, es ist keine allgemeine IO-API. –

+0

@michael -you fragte speziell über alles in Scala, um IO mit Streams zu behandeln. Ich glaube wirklich nicht, dass die Antwort den Downvote verdient. Es ist vollkommen legitim, dies mit einem zugrunde liegenden Textstream (z. B. von einem Socket) zu verwenden. –

1

I/O wurde bisher in Scala nicht angesprochen. Was existiert, existiert nur, um den Compiler und die XML-Bibliothek zu unterstützen.

0

Erik Engbrechts Scalax fork könnte nützlich sein.