2017-08-21 3 views
0

Ich verwende Node.js, um einige Dateien zu gzipieren und ihr Raw-Byte-Array in eine Datei auszugeben.Datei synchron lesen und in Byte-Array konvertieren

Zum Beispiel:

test.txt:

1234 

text.txt> test.txt.gz

test.txt.gz auf Byte-Array> array. txt

Array .txt:

{0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e} 


Ich scheine konnte keine weiteren Fragen zu finden auf Dateien auf Byte-Arrays oder irgendwelche npm Pakete zu konvertieren. Ich habe versucht, eine Datei manuell fs.readFileSync und verwenden Sie sie in einer Funktion, aber aufgrund der Sonderzeichen und Codierung ist es fehlgeschlagen.

Wie kann ich eine Datei in Node.js nativ oder in ein Paket konvertieren?

+0

meine bearbeiten Sie prüfen möchten, ist es vielleicht eine einfache schnelle Art und Weise gibt ein Byte-Array Handwerk – EMX

Antwort

1

Ich denke, das erreicht, was Sie wollen, wenn auch ein bisschen schmutzig.

FYI: fs.readFileSync gibt ein Buffer Objekt, das Sie konvertieren kann über Buffer.toString('hex')

var fs = require('fs'); 

function getByteArray(filePath){ 
    let fileData = fs.readFileSync(filePath).toString('hex'); 
    let result = [] 
    for (var i = 0; i < fileData.length; i+=2) 
     result.push('0x'+fileData[i]+''+fileData[i+1]) 
    return result; 
} 

result = getByteArray('/path/to/file') 
console.log(result) 
1

Beispiel hex:

console.log("[string]:") 
const _string = 'aeiou.áéíóú.äëïöü.ñ'; 
console.log(_string) 

console.log("\n[buffer]:") 
const _buffer = Buffer.from(_string, 'utf8'); 
console.log(_buffer) 

console.log("\n[binaryString]:") 
const binaryString = _buffer.toString(); 
console.log(binaryString) 

Ausgang:

[string]: 
aeiou.áéíóú.äëïöü.ñ 

[buffer]: 
<Buffer 61 65 69 6f 75 2e c3 a1 c3 a9 c3 ad c3 b3 c3 ba 2e c3 a4 c3 ab c3 af c3 b6 c3 bc 2e c3 b1> 

[binaryString]: 
aeiou.áéíóú.äëïöü.ñ 

EDIT: EASY MIT convert-string

Beispiel:

console.log("[string]:") 
const _string = 'aeiou.áéíóú.äëïöü.ñ'; 
console.log(_string) 

console.log("\n[byteArray]:") 
const converter = require('convert-string') 
const byteArray = converter.UTF8.stringToBytes(_string) 
console.log(byteArray) 

Ausgang:

[byteArray]: 
[ 97, 
    101, 
    105, 
    111, 
    117, 
    46, 
    195, 
    161, 
    195, 
    169, 
    195, 
    173, 
    195, 
    179, 
    195, 
    186, 
    46, 
    195, 
    164, 
    195, 
    171, 
    195, 
    175, 
    195, 
    182, 
    195, 
    188, 
    46, 
    195, 
    177 ] 
Verwandte Themen