Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Dec 13, 2019. It is now read-only.
/file-readerPublic archive

Base classes for read big file write by JavaScript

NotificationsYou must be signed in to change notification settings

Datafruit/file-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Statusnpm version

中文

About

TheFileReader class provides native file-readingcapabilities for modern browsers.

Sometimes we will read out the needs from large files.such as read a part of the text file to display on the browser.At this point need to read the file as fragmented to avoid the browser stuck.

FileReader is an asynchronous interface,so in the concurrent read need a program to manage these concurrent,pass the contents of the slices to the next operation with order.

You can wait for a slice finished then reading the next piece.becauseJavaScript is a single-threaded language, so the two ways notessentially different.

Install

npm install next-reader --save-dev

Reader

All Reader extends ofBaseReader

ReaderOptions

  • {String} encode - defaultutf8
  • {Number} read_size - defaultfile.size
  • {Number} concurrency - default1
  • {Number} chunk_size - file's encode. defaultutf8, only supportutf8,default1 << 16

BrowserFileReader(file, [options])

Params

Simple

import{BrowserFileReader}from'next-reader'consttarget=document.querySelector('#file')target.onchange=()=>{constfile=target.files[0]constreader=newBrowserFileReader(file)reader.subscribe((data,sequence)=>console.log('onNext::',data,sequence),(error,already,read_size)=>console.log('onError::',error,already,read_size),()=>console.log('onCompleted'))reader.read()// same as reader.readAsArrayBuffer()// orreader.readAsArrayBuffer()// orreader.readAsText()// orreader.readAsDataURL()}

LineReaderOptions

  • {Boolean} ignore_line_break - defaulttrue

ReadLineAsUint8(file, [options])

Params

Simple

import{ReadLineAsUint8}from'next-reader'constType=ReadLineAsUint8.Typeconsttarget=document.querySelector('#file')target.onchange=()=>{constfile=target.files[0]constreader=newReadLineAsUint8(file)reader.subscribe((record)=>{const{type, no, size, data}=recordif(type===Type.lines){console.log(data.forEach(d=>console.log(d)))}elseif(type===Type.line){console.log(data,no,size)}},(error,already,read_size)=>console.log('onError::',error,already,read_size),()=>console.log('onCompleted'))reader.read()}

ReadLineAsString(file, [options])

Params

Simple is same asReadLineAsUint8

ReadCsvAsUint8(file, [options])

Params

Simple

import{ReadCsvAsUint8}from'next-reader'consttarget=document.querySelector('#file')target.onchange=()=>{constfile=target.files[0]constreader=newReadCsvAsUint8(file)reader.subscribe((record)=>{const{ lines, size}=recordlines.forEach(record=>{console.log(record.fields,record.size,record.no)})console.log(size)},(error,already,read_size)=>console.log('onError::',error,already,read_size),()=>console.log('onCompleted'))reader.read()}

ReadCsvWithLines(file, lines, [options])

Params

Simple

import{ReadCsvWithLines}from'next-reader'consttarget=document.querySelector('#file')target.onchange=()=>{constfile=target.files[0]constreader=newReadCsvWithLines(file,100)reader.subscribe((record)=>{const{ lines, size}=recordlettotal=0lines.forEach(record=>{console.log('No. %s: %s .%s',record.no,record.fields.toString(),record.size)})console.log('total => %s, size => %s',total,size)},(error,already,read_size)=>console.log('onError::',error,already,read_size),()=>console.log('onCompleted'))reader.read()}

BaseReader

BaseReader extends ofBaseObservableand implementsAbstractReader

AbstractReader

ImplementsAbstractObservable

  • read()
  • pause()
  • resume()
  • enqueue()
  • onReadData()
  • onReadError(error, already, read_size)
  • onReadComplete()
  • readable()
  • validate(data)
  • result(data)

BaseObservable

Implements ofAbstractObservable

AbstractObservable

  • subscribe(BaseObserverOrOnNext, onError, onComplete)
  • subscribeOnNext(...args)
  • subscribeOnError(...args)
  • subscribeOnComplete(...args)

BaseObserver

ImplementsAbstractObserver

AbstractObserver

  • onNext(...args)
  • onError(...args)
  • onComplete(...args)
  • destroy()
  • isDestroy()

License

MIT

About

Base classes for read big file write by JavaScript

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp