FileChannel的位置(long newPosition)是0索引的吗?

时间:2017-10-28 01:49:40

标签: java channel java.nio.file

也就是说,如果我这样做:

def sum13(nums):
   if nums:
      sum = 0
      if nums[0] != 13:
         sum += nums[0]
      for i in range(1, len(nums)):
         print 'Current number:', str(nums[i])
         print 'Previous number:', str(nums[i-1])
         if nums[i] != 13 and nums[i - 1] != 13:
            sum += nums[i]
      return sum
   if not nums:
      print 'Empty list'
ls = [10,11,13,12,14,14]
print 'Total sum:', str(sum13(ls))
ls2 = []
print sum13(ls2)

vs

channel.position(0)
channel.read(buffer); // will read in 1st byte of file and so on

我的假设是否正确?阅读the documentation并没有真正说明这一点,所以我想确保

2 个答案:

答案 0 :(得分:1)

  

FileChannel的位置(long newPosition)是0索引的吗?

  

阅读文档并没有真正说明任何事情所以我想确保

我很清楚。 position()的{​​{3}}说:

  

"返回:此频道的文件位置,非负整数,计算从文件开头到当前位置的字节数&#34 ;

" [A]非负整数"意味着零或更大。如果他们意味着一个或更多,他们就会写出一个正整数"或"严格正整数"。

答案 1 :(得分:0)

该方法为0索引。

同样,当您调用read方法时,文件位置将使用实际读取的字节数进行更新。通道的position()方法返回当前位置。