[Javascript] ファイルをバイナリ操作する方法 #1 ファイルアクセスの仕方

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

海外ドラマが面白くて毎日AmazonPrimeが手放せない、下駄です。
 

javascriptでも、バイナリ操作を行えば、ファイルのあらゆる情報を取得することが可能です。
 

c言語を学習したことがある人であれば、バイナリアドレスの感覚や、ビット計算などのやり方は、理解できていると思いますが、
 

普段、インタプリタ系のプログラミングをメインで行う人にとっては、この手のプログラムは苦手な人が多いようです。
 

かくゆう僕もそうしたプログラムはやりませんが、最近では、アップロードするファイル情報を詳細に取得する処理や、
 

ファイル情報を書き換えるような処理を書くことが多くなってきて、便利にブラウザ内だけで処理するために、
 

javascriptでのバイナリ操作をやり始めました。
 

Javascriptでファイルのバイナリ操作をする方法

まず、ブラウザでファイルアップロードできるinputタグのtype=fileに登録されたファイルに関しては、javascriptのfileAPIを使って、アクセスすることが可能になります。
 

そして、そのファイルを以下のようにすると、ファイルのバイナリデータを取得することができるようになるんですね。
 

 

上記のタグを使って選択されたローカルファイルをjavascriptでバイナリアクセスします。
 

 

こうすることで、”binary変数”には、配列としてアクセスできるデータが格納されます。
 

callbackが重要

お気づきの人もいるかと思いますが、ファイルをonloadしないと、binaryデータは取得できないので、非同期処理として作業を進める必要があります。
 

こうした処理を行っているプログラムを見ると頻繁にcallback関数が書かれているのはこのためなんですね。
 

ちなみに、このbinaryデータを配列としてアクセスすると、00-ffの10進数で取得することができますが、その値の扱い方は、ファイルフォーマットの仕様によって異なります。
 

画像や音楽データなどを紐解いてみると、意外と簡単にデータ変換処理ができたり、内部情報を取得できるため、もはや使わなくなるアプリケーションなども増えそうですね。
 

次回は、binaryデータを使って、それぞれのアドレスに入っているデータへのアクセス方法をやってみたいと思います。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です