Friday, July 27, 2012
Scala-IO Getting Started
For the next several posts you will need to have Scala-IO installed and probably should have a sbt project as well.
There are currently 2 Scala-IO 0.4 releases.
The last line (Right(770)) is not a command to enter; it is the result of the asynchonous call.
There are currently 2 Scala-IO 0.4 releases.
- Scala-io 0.4-seq - A version of Scala 0.4 without the Akka dependency and therefore no ASync support
- Scala-io 0.4 - The full version that contains an Akka dependency
The Scala 2.10 versions will have no Akka dependency but can optionally use Akka.
So getting started:
Download the example project on the docs website (http://jesseeichar.github.com/scala-io-doc/latest):
- Go to Getting Started and follow instructions for downloading and running the example project. The following goes through the steps for the 0.4.1 instructions.
The last line (Right(770)) is not a command to enter; it is the result of the asynchonous call.
Labels:
daily-scala,
Scala,
scala-io
Thursday, July 26, 2012
Introducing Scala-IO
This is the start of a series of posts on Scala-IO. Scala-IO is as the name implies a library for performing input and output operations with Scala. There are 4 main facets to the library
- Basic IO - Reading and writing to some underlying resource. The current implementation is Java based and thus allows reading and writing to resources like java.io.Readers, Writers, Channels, Streams, etc...
- File API - A library loosely designed after java 7 nio.file API with an additional simple unix like DSL for traversing and searching the filesystem. It is a pluggable architecture which allows plugins for systems like WebDav or Zip filesystems to be addressed in a similar manner as the local filesystem. The included implementation is for the local file system and is implemented on the java.io APIs
- Asynchronous Access - Throughout the APIs are both synchronous and asynchronous options allowing both models of programming to be easily used.
- In the 2.10.x + versions the future implementations are pluggable but require no additional libraries if so that is the desire
- In 2.9.x versions there are two different dependencies one with asynchronous APIs implemented on Akka and one without any asynchronous APIs
- Processor API - An API for defining complex IO processes declaratively.
This series will look at normally a small and simple IO operation each day (or so) rather than only a few in-depth articles. This is required because of my limited available time.
With the introduction done lets look at two small examples:
With the introduction done lets look at two small examples:
Read File with Core API (not File API):
Same thing but with File API:
Labels:
daily-scala,
Scala,
scala-io
Subscribe to:
Posts (Atom)