dポイントプレゼントキャンペーン実施中!

「アスキー」「バイナリー」
FFFTPこの二つのモードがありますが、用途の境目がわかりません。

FFFTPでJavaファイルを上げる場合なのですが、
ローカル(Windows)のサーバー側(Linux)へFFFTPで転送する際に
作業現場では“バイナリー”で上げて欲しいと言われています。

私の考えでは、
テキスト(人間が読める言語)という定義のアスキーの設定で上げるものだと思っていたので驚いたのですが、何故Javaファイルをバイナリー設定で上げる事になるのでしょうか?


[現時点でまとめてある認識]

アスキー
--------------------------------------------------------------
(1)基本的に人間が読めるテキストベースのファイルモード
(2)サーバの設定に合わせて改行コードが変換してファイルを上げる
(3)テキストファイル系(txt/html/JS/CSS..)

バイナリー
--------------------------------------------------------------
(1)基本的に機械が読み込む為のファイルモード
(2)ファイルを上げた際に何も起こらず、そのままファイル上げることができる。
(3)画像ファイル・音楽ファイル系(jpg/GIF/PNG/mp3..)


この認識の上ですと、
“Javaファイルは人間が読めるもので、テキストファイルである”ということから、“アスキー”で上げるのが妥当だとは思っています。

Javaファイルを“バイナリー”で上げる理由は何なのでしょうか?
コンパイルの際に改行コードが変換されると不都合があるからなのでしょうか?


認識で間違っている点がございましたら、
ご指摘・ご教授の程宜しくお願いします。




参考サイト様
-------------------------------------------------------
ttp://www.res-system.com/item/339
ttp://www.komakusa.net/internet/appendix.html
ttp://www.wanichan.com/beginner/pc/win19.htm

A 回答 (2件)

まずコンピューター(LinuxもWindows)から見れば、


ファイルに対して「アスキー」なんていう属性はなく
テキストファイルを含め
どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。

ffftpでは
アスキーモードでアップロードすると
Cr,Lfの改行コードがLfに置換され
逆にダウンロードする際は
LfがCr,Lfに置換されます。

これはWindowsの標準の改行コードがCr,Lfで
LinuxやUNIXがLfを標準の改行コードにしている為ですが
昨今の優秀なWindowsのテキストエディタは
ほとんどの文字コードに対応し、改行コードも設定できます。
ですからわざわざ「アスキー」でアップロードする意味がなくなってきています。
(WindowsでLfの改行で保存し、バイナリでアップすれば良い。
逆にこのファイルをアスキーでダウンロードするとCrLfになります。)

どちらにしても改行コードを統一するメリットはあります。
例えばviエディタでCr,Lfのファイルを開くと「CTRL+M」とかでて見づらいですし、
Lfだけだと、昔のWindowsのメモ帳等で開くと改行されません。
(Linuxをsambaで直接みてる人にとってはCr,Lfの方が都合が良い場合もあります。)
またVSSやSVN等のバージョン管理ソフトを使っていると、改行コードが変わっただけで
ファイルに変更があったと勘違いされてしまいます。
そういう場合、意図しない改行コードの変換があっては困ります。

#1さんの言われるように仕様的に問題があるのかもしれません。
あとはclassファイルを誤ってアスキーで転送するミスが少なくなる
ぐらいでしょうか。

ただ作業現場の人に理由を聞かないと推測の域をでません。

この回答への補足

>まずコンピューター(LinuxもWindows)から見れば、
>ファイルに対して「アスキー」なんていう属性はなく
>テキストファイルを含め
>どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。

0と1の事をすっかり忘れておりました…

そうですよね。
コンピューターは0と1のデジタルデータで出来ているのですよね。
コンピューター暦も長いのにお恥かしい限りです(汗)


>昨今の優秀なWindowsのテキストエディタは
>ほとんどの文字コードに対応し、改行コードも設定できます。
>ですからわざわざ「アスキー」でアップロードする意味がなくなって>きています。
時代と共に変わっていっているのですね…
そうなると、作業場でアスキーとバイナリーの違いがあるのも少しだけ関連があるように思えます。

>あとはclassファイルを誤ってアスキーで転送するミスが少なくなる
ぐらいでしょうか。

そこまで考えた事がありませんでした。
現場で詳しい方の手が空いた時にでも理由を聞いてみます。

とても参考になりました。
FFFTPなどでファイルを転送する際は気を付けるように致します。

ありがとうございました。

補足日時:2008/01/22 21:50
    • good
    • 2

.javaファイルはソースコードだから、私もアスキーモードで転送しています。


.javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。

恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。

この回答への補足

早速のご回答ありがとうございます。

>javaファイルはソースコードだから、私もアスキーモードで転送しています。
質問者さんのところはアスキーであげられているのですか。
私のところがバイナリーで上げているのは特異と考えて居た方が良いのかもしれませんね(--;

>javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。

やはり、
Javaファイル(アスキー)、
classファイル(バイナリー)、
これが一般的ですよね…(汗)

>恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。

考えとしては此処も考えたのですが、
どうも納得がいかず質問をさせて頂いておりました(汗)


ご回答ありがとうございます。
Javaファイルを必ずしもバイナリーで上げるものだと勘違いしなくて済みました。

補足日時:2008/01/20 18:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!