Class: Hdfs::File
- Inherits:
-
Delegator
- Object
- Delegator
- Hdfs::File
- Defined in:
- lib/hdfs_jruby/file.rb
Class Method Summary collapse
Instance Method Summary collapse
- #__getobj__ ⇒ Object
- #__setobj__(obj) ⇒ Object
- #close ⇒ Object
-
#initialize(path, mode = "r") ⇒ File
constructor
A new instance of File.
- #seek(offset, whence = IO::SEEK_SET) ⇒ Object
- #sysread(length, outbuf = "") ⇒ Object
- #syswrite(str) ⇒ Object
Constructor Details
#initialize(path, mode = "r") ⇒ File
Returns a new instance of File.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/hdfs_jruby/file.rb', line 13 def initialize(path, mode = "r") #@conf = Hdfs::Configuration.new() #@fs = Hdfs::FileSystem.get(@conf) @fs = Hdfs.get_fs() @mode = mode if mode == "w" @stream = @fs.create(Hdfs::Path.new(path), false) elsif mode == "r" @stream = @fs.open(Hdfs::Path.new(path)) elsif mode == "a" p = Hdfs::Path.new(path) if !@fs.exists(p) @stream = @fs.create(Hdfs::Path.new(path), false) else if ! @fs.isFile(p) raise "path: #{path} is not file" end @stream = @fs.append(Hdfs::Path.new(path)) end end end |
Class Method Details
Instance Method Details
#__getobj__ ⇒ Object
87 88 89 |
# File 'lib/hdfs_jruby/file.rb', line 87 def __getobj__ @stream end |
#__setobj__(obj) ⇒ Object
92 93 94 |
# File 'lib/hdfs_jruby/file.rb', line 92 def __setobj__(obj) @stream = obj end |
#close ⇒ Object
81 82 83 84 |
# File 'lib/hdfs_jruby/file.rb', line 81 def close @stream.close @fs.close end |
#seek(offset, whence = IO::SEEK_SET) ⇒ Object
76 77 78 79 |
# File 'lib/hdfs_jruby/file.rb', line 76 def seek(offset, whence = IO::SEEK_SET) @stream.seek(offset) 0 end |
#sysread(length, outbuf = "") ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/hdfs_jruby/file.rb', line 65 def sysread(length, outbuf = "") buf = Java::byte[length].new n = @stream.read(buf) if n < 0 return nil end outbuf << java.lang.String.new(buf, 0, n).to_s end |
#syswrite(str) ⇒ Object
60 61 62 63 |
# File 'lib/hdfs_jruby/file.rb', line 60 def syswrite(str) n = @stream.write(str.to_java_bytes) return n.to_i end |