lib-utils-ts
Version:
<img src="https://img.shields.io/npm/v/lib-utils-ts"/> <img src="https://img.shields.io/snyk/vulnerabilities/npm/lib-utils-ts"/> <img src="https://img.shields.io/npm/l/lib-utils-ts"/> <img src="https://img.shields.io/github/languages/top/devGnode/lib-util
31 lines (22 loc) • 952 B
text/typescript
import {Writer} from "./Writer";
import {IOException} from "../Exception";
import {Arrays} from "../type/Arrays";
export class StringWriter extends Writer{
private value:string[] = new Array<string>();
private isClose:boolean = false;
constructor() {super();}
public append(chr:string):StringWriter{
this.write(chr);
return this;
}
public close(): void {this.isClose=true;}
public flush(): void { this.value=[]; }
public writeBytes(buffer: string[] | string, off?: number, len?: number): void {
if(this.isClose==null) throw new IOException(`Stream ${StringWriter.class().getName()} is closed !`);
for(let i:number= this.value.length; i < (i+buffer.length); i++) this.value[i] = buffer[i];
}
public getBuffer():string[]{ return Arrays.copyOfRange(this.value,0, null); }
/***@override*/
public toString():string{ return this.value.join(); }
}
Object.package(this);