--- /dev/null
+import "Stream"
+import "Vector"
+import "Charset"
+
+importJava "java.nio.file.Path" where
+ data Path
+
+importJava "java.nio.file.Paths" where
+
+ @JavaName "get"
+ paths :: String -> Vector String -> Path
+
+path :: String -> Path
+path path = paths path (vector [])
+
+importJava "java.nio.file.OpenOption" where
+ data OpenOption
+
+importJava "java.nio.file.StandardOpenOption" where
+ READ :: OpenOption
+ WRITE :: OpenOption
+ APPEND :: OpenOption
+ TRUNCATE_EXISTING :: OpenOption
+ CREATE :: OpenOption
+ CREATE_NEW :: OpenOption
+ DELETE_ON_CLOSE :: OpenOption
+ SPARSE :: OpenOption
+ SYNC :: OpenOption
+ DSYNC :: OpenOption
+
+importJava "java.nio.file.CopyOption" where
+ data CopyOption
+
+importJava "java.nio.file.LinkOption" where
+ data LinkOption
+
+importJava "java.nio.file.StandardCopyOption" where
+ REPLACE_EXISTING :: CopyOption
+ COPY_ATTRIBUTES :: CopyOption
+ ATOMIC_MOVE :: CopyOption
+
+importJava "java.nio.file.LinkOption" where
+ NOFOLLOW_LINKS :: CopyOption // OpenOption
+
+importJava "java.nio.file.attribute.FileAttribute" where
+ data FileAttribute
+
+importJava "java.nio.file.Files" where
+ @JavaName newInputStream
+ newInputStreamWithOpenOptions :: Path -> Vector OpenOption -> <Proc, Exception> InputStream
+
+ @JavaName newOutputStream
+ newOutputStreamWithOpenOptions :: Path -> Vector OpenOption -> <Proc, Exception> OutputStream
+
+ @JavaName createFile
+ createFileWithFileAttributes :: Path -> Vector FileAttribute -> <Proc, Exception> Path
+
+ @JavaName createDirectory
+ createDirectoryWithFileAttributes :: Path -> Vector FileAttribute -> <Proc, Exception> Path
+
+ @JavaName createDirectories
+ createDirectoriesWithFileAttributes :: Path -> Vector FileAttribute -> <Proc, Exception> Path
+
+ @JavaName createTempFile
+ createTempFileWithFileAttributes :: Path -> String -> String -> Vector FileAttribute -> <Proc, Exception> Path
+
+ delete :: Path -> <Proc, Exception> ()
+
+ deleteIfExists :: Path -> <Proc, Exception> Boolean
+
+ @JavaName copy
+ copyWithCopyOptions :: Path -> Path -> Vector CopyOption -> <Proc, Exception> Path
+
+ @JavaName move
+ moveWithCopyOptions :: Path -> Path -> Vector CopyOption -> <Proc, Exception> Path
+
+ size :: Path -> <Proc, Exception> Long
+
+ @JavaName exists
+ existsWithLinkOptions :: Path -> Vector LinkOption -> <Proc> Boolean
+
+ @JavaName notExists
+ notExistsWithLinkOptions :: Path -> Vector LinkOption -> <Proc> Boolean
+
+ isReadable :: Path -> <Proc> Boolean
+
+ isWritable :: Path -> <Proc> Boolean
+
+ isExecutable :: Path -> <Proc> Boolean
+
+ // Simupedia has BufferedReader.scl module which contains BufferedReader
+ // newBufferedReader :: Path -> Charset -> <Proc> BufferedReader
+ // newBufferedReader :: Path -> <Proc> BufferedReader
+
+ @JavaName copy
+ copyInputStreamWithCopyOptions :: InputStream -> Path -> Vector CopyOption -> <Proc, Exception> Long
+
+ @JavaName copy
+ copyToOutputStream :: Path -> OutputStream -> <Proc, Exception> Long
+
+ readAllBytes :: Path -> <Proc, Exception> Vector Byte
+
+ @JavaName readAllLines
+ readAllLinesWithCharset :: Path -> Charset -> <Proc, Exception> [String]
+
+ readAllLines :: Path -> <Proc, Exception> [String]
+
+ @JavaName write
+ writeBytesWithOpenOptions :: Path -> Vector Byte -> Vector OpenOption -> <Proc, Exception> Path
+
+newInputStream :: Path -> <Proc, Exception> InputStream
+newInputStream path = newInputStreamWithOpenOptions path (vector [])
+
+newOutputStream :: Path -> <Proc, Exception> OutputStream
+newOutputStream path = newOutputStreamWithOpenOptions path (vector [])
+
+createFile :: Path -> <Proc, Exception> Path
+createFile path = createFileWithFileAttributes path (vector [])
+
+createDirectory :: Path -> <Proc, Exception> Path
+createDirectory path = createDirectoryWithFileAttributes path (vector [])
+
+createDirectories :: Path -> <Proc, Exception> Path
+createDirectories path = createDirectoriesWithFileAttributes path (vector [])
+
+createTempFile :: Path -> String -> String -> <Proc, Exception> Path
+createTempFile dir prefix suffix = createTempFileWithFileAttributes dir prefix suffix (vector [])
+
+copy :: Path -> Path -> <Proc, Exception> Path
+copy source target = copyWithCopyOptions source target (vector [])
+
+move :: Path -> Path -> <Proc, Exception> Path
+move source target = moveWithCopyOptions source target (vector [])
+
+exists :: Path -> <Proc> Boolean
+exists path = existsWithLinkOptions path (vector [])
+
+notExists :: Path -> <Proc> Boolean
+notExists path = notExistsWithLinkOptions path (vector [])