class_docstr: A 'view' of a corpus file that joins together one or more
  ``StreamBackedCorpusViews<StreamBackedCorpusView>``.  At most
  one file handle is left open at any time.
class_docstr_tok: ["A","'view","'","of","a","corpus","file","that","joins","together","one","or","more","``","StreamBackedCorpusViews","<","StreamBackedCorpusView",">","``",".","At","most","one","file","handle","is","left","open","at","any","time","."]
code: def __len__(self):
      if len(self._offsets) <= len(self._pieces):
          # Iterate to the end of the corpus.
          for tok in self.iterate_from(self._offsets[-1]):
              pass
  
      return self._offsets[-1]
  
imports: import bisect
  import os
  import pickle
  import re
  import tempfile
  from functools import reduce
  from xml.etree import ElementTree
  from nltk.data import FileSystemPathPointer, PathPointer, SeekableUnicodeStreamReader, ZipFilePathPointer
  from nltk.internals import slice_bounds
  from nltk.tokenize import wordpunct_tokenize
  from nltk.util import AbstractLazySequence, LazyConcatenation, LazySubsequence
label_desc: Use image node_id 2 for calling the ConcatenatedCorpusView obj's underlying member method code with example usage: obj.__len__() and returns: self