トップページ⇒tech
1001コメント349KB

iモード携帯電話用Java(iアプリ) Part10

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/11/10(木) 15:11:53
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。

※DoCoMo以外は下記スレへ。

CLDC+MIDP+携帯電話用Javaスレッド part 4
http://pc5.2ch.net/test/read.cgi/tech/1108781476/

■ iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/

■ iモード携帯電話用Java(iアプリ)まとめサイト
http://ton.my-sv.net/

■関連スレ
【日本携帯】Mascot Capsule/Micro3D【標準】
http://pc8.2ch.net/test/read.cgi/tech/1117773530/

過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1084246226/
Part 6 http://pc5.2ch.net/test/read.cgi/tech/1091286071/
Part 7 http://pc5.2ch.net/test/read.cgi/tech/1102844217/
Part 8 http://pc8.2ch.net/test/read.cgi/tech/1110946222/
Part 9 http://pc8.2ch.net/test/read.cgi/tech/1120411353/
0348デフォルトの名無しさん2006/01/01(日) 02:57:12
質問なのですが、携帯電話のアプリでオンラインで音声チャットができるようなものは作れないのでしょうか?
0349デフォルトの名無しさん2006/01/01(日) 04:19:08
アプリと通話を同時に動作させられないので作れない。
0350デフォルトの名無しさん2006/01/01(日) 04:40:54
>>348
W-ZERO3上で動くSkypeみたいなことができないかってこと?
0351デフォルトの名無しさん2006/01/01(日) 16:55:46
>>347 だったらglobalで用意したほうがメンテし難いという1点を除き全ての面で有利だよ。
0352デフォルトの名無しさん2006/01/01(日) 17:11:59
>>351
そうなんですか?
回答ありがとうございます。
変数名全て一文字にしたり、いろいろテクニックが必要なんですね。
0353デフォルトの名無しさん2006/01/01(日) 17:35:01
>>352
変数名を短くするとかいうのは、最後にProGuardに任せればOK
開発時は気にする必要ないよ
0354 【大吉】 2006/01/01(日) 17:59:17
iアプリの今後を占ってみるテスト
0355デフォルトの名無しさん2006/01/02(月) 01:23:52
>>354
今年もデスマ決定だなw
0356デフォルトの名無しさん2006/01/02(月) 08:05:47
質問失礼します。Javaヒープより大きいJarファイルを読もうとして、以下のようにしてみたのですが
動きません。このやり方ではまずいですか
JarReader(String name) {
int jsize;
int offset = 0;
int size;
byte[] data = new byte[20480];
HttpConnection c = null;
InputStream in = null;
OutputStream out = null;
in= Connector.openInputStream("scratchpad:///0");
jsize = in.read() * 256 + in.read();
in.close();
if(jsize == 0) {
c = (HttpConnection)Connector.open(
IApplication.getCurrentApp().getSourceURL() + name,
Connector.READ, true);
c.setRequestMethod(HttpConnection.GET);
c.connect();
in = c.openInputStream();
out = Connector.openOutputStream("scratchpad:///0;pos=0");
out.write(jsize/256);
out.write(jsize%256);
while((size = in.read(data, offset, data.length)) != -1) {
out.write(data);
offset += size;
}
in.close();
c.close();
out.close();
}
0357デフォルトの名無しさん2006/01/02(月) 08:44:49
まずどう動かないのか書かないとわからない。
コンパイラがエラーを言うなら、そもそもコードが間違ってるし。

というかヒープより多きいんじゃ読めなくても当たり前と違うの?
(直接スクラッチパッドに書き込むつもりでも内部でどうやってるか
 わかったもんじゃないし)
03583562006/01/02(月) 09:14:45
コンパイルは通っています。
Exceptionが派生しているのは
while((size = in.read(data, offset, data.length)) != -1) {
の部分です。
そもそもHTTPでoffsetを設定したreadをしていいのかが気になっています。

もしかしてJavaヒープとスクラッチパッドって同じメモリ領域を共有しているのですか?
とりあえずJavaヒープに収まる
byte[] data = new byte[20480];
で分割しながらスクラッチパッドに書き込もうと思っていたのですが…。
0359デフォルトの名無しさん2006/01/02(月) 09:43:23
>>356
>while((size = in.read(data, offset, data.length)) != -1) {
>out.write(data);
>offset += size;
>}
ヒープサイズなんて関係ないだろ。
これだと、offsetが20480バイト超えた途端にArrayIndexOutOfBoundsException出ないか?
おまけに、size見ないで毎回20480バイトwrite()してるし。
0360デフォルトの名無しさん2006/01/02(月) 13:17:02
カメラの動作を確認する場合は実機に落とさないとダメですか?
0361デフォルトの名無しさん2006/01/02(月) 13:47:18
うん
0362デフォルトの名無しさん2006/01/02(月) 13:53:44
>>356
1回の通信で取得できるデータの長さには制限がある
それにひっかかってんじゃないのか
0363デフォルトの名無しさん 2006/01/02(月) 20:06:24
>>358
>>357と同じく、なんのExceptionが発生しているのか
書いてくれんと、原因を特定しずらい。
0364デフォルトの名無しさん2006/01/03(火) 01:52:55
readの話題が出たので便乗質問します。

http = (HttpConnection)Connector.open(url,Connector.READ);
http.setRequestMethod(HttpConnection.GET);
http.connect();

int contentLength = (int)http.getLength();
inputStream = http.openInputStream();

data = new byte[contentLength];
int readBytes = 0;
while(readBytes < contentLength) {
readBytes += inputStream.read(data,readBytes,contentLength - readBytes);
}

上記のようなソースを書いているのですが、contentLength>=10240の場合に
inputStream.readで例外が出てしまいます。IndexOutOfBoundExceptionです。

最初の1回で10240バイト読んで、その次のループで例外を出してしまいます。
1000バイトずつ読むようにしても、
どうしても10240バイトを超えて読もうとするとそこで例外が発生します。
(おそらく最後の1回で240バイト、その次のループで例外が出るのだと思います)

実機はP504iです。もちろんエミュレータ上では問題なく動いているのですが、
DoJa 2.0ではInputStream#read に読み込みバイト制限でもあるのでしょうか?
0365デフォルトの名無しさん2006/01/03(火) 03:15:01
>>364
初歩中の初歩だぞ・・・
http://www.saturn.dti.ne.jp/~npaka/ibook2/izon.html
ココのHTTP受信/送信データサイズ参照。
03663562006/01/03(火) 05:28:41
>>359
offsetの値は関係ありません。毎回dataを上書きしていますから。

>おまけに、size見ないで毎回20480バイトwrite()してるし。
確かにサイズ考慮していなかった…鬱

端末のスペック表、読み違えてた…。
Javaヒープの容量読み間違えていた、Byteだと思っていたら、KByteだった。
スクラッチパッドのサイズより十分大きいいや…鬱

一回のreadで読み込むようにして、読めるようになりました。
0367デフォルトの名無しさん2006/01/03(火) 05:37:25
iアプリのデバッグってどんな感じでやってますか?
printStackTrace()は使えないみたいだし
Eclipse2.1.2でトレースデバッグもできないみたいだし…。
0368デフォルトの名無しさん2006/01/03(火) 06:06:45
System.out.println("ここまで読んだ");
0369デフォルトの名無しさん2006/01/03(火) 07:37:07
>>365
情報ありがとう。やはり制限があったのですね。

どうしても10Kbyteを超えた容量のファイルをダウンロードしたいのだけれど、
DoJa2.0では1回の通信では出来ないことがわかりました。
では、どのようにこの制限を回避してダウンロードすればよいでしょうか。

一般的な方法などありましたら是非教えてください。
0370364, 3692006/01/03(火) 08:09:06
HTTP1.1のRangeを使おうとしてみたけれど、
Connection#SetRequestPropertyはRangeが設定できない仕様で失敗しました。

サーバ側で分割送信するCGIを用意すれば良いのでしょうが、
出来ればサーバ側の細工無しで実装したいところです。
0371デフォルトの名無しさん2006/01/03(火) 08:27:20
>>369
ファイル自体を分割する
面倒ではあるが確実
0372デフォルトの名無しさん2006/01/03(火) 08:31:54
>>371
ユーザーがアップロードしたファイルをダウンロードさせたいので、
それをやるならばアップローダで分割させる必要があるんですよね。
また、そのファイルはPCからも見られるようにしたいので、困っています。
0373デフォルトの名無しさん2006/01/03(火) 09:38:29
>>366
>>>359
>offsetの値は関係ありません。毎回dataを上書きしていますから。
offset関係しまくりじゃねーか。そのつもりなら、
in.read(data, offset, data.length)
じゃなく、
in.read(data, 0, data.length)
と書けよ。
0374デフォルトの名無しさん2006/01/03(火) 10:18:06
>>372
1GETの10KB制限が仕様である以上、
クライアント側でRange指定するか、サーバー側で小細工するしか選択肢はないと思うのだが。
CGIで分割送信させれば済む話なんじゃないの?
0375デフォルトの名無しさん2006/01/03(火) 12:13:47
>>374
サーバ側で小細工すると要らぬ負荷がかかる上にメンテナンスも面倒だ、というだけです。
ところで、クライアント側でRange指定できるんですか?
0376デフォルトの名無しさん2006/01/03(火) 13:24:56
>>375

面倒と言っているが方法が分らないだけだとry
0377デフォルトの名無しさん2006/01/03(火) 14:25:49
>>376
windowsしか使えないんじゃない。
サーバは大抵UNIX系だからね。
splitですむのにね。
03783662006/01/03(火) 20:45:05
APIリファレンス読み直してみた…。
offsetってストリームへのoffsetだと思っていた。
byte配列へのoffsetだったのですね…。
猛省します。
03793642006/01/03(火) 23:41:31
Windowsサーバは別に否定しませんが、サーバはLinuxです。
結局、split.cgi?filename=hoge.bin&from=10240&length=10240みたいなの作りました。
クライアントでHTTP1.1のRange指定があれば言うことは無かったんですけどね。
0380デフォルトの名無しさん2006/01/04(水) 00:34:39
>>379
splitコマンドでファイルを分割しておくだけで済むのに。
シェルは使えないの。

>>Windowsサーバは別に否定しませんが
自分は否定します。
手間ばかり掛って、さらに危険度も高くデメリットだけだと思うけど。
windowsしか使えない人達にとっては、唯一の選択だろうが。
0381デフォルトの名無しさん2006/01/04(水) 01:53:19
>>380
例えばファイルをいくつダウンロードしなければいけないのかクライアントがどう判断するのかとか、
ファイルの上書きやら、分割サイズはどうすのかとか、正直おまいのはていどの低い解決策に見えるんだが
linuxにこだわってシェルに傾倒するのは自由だが、364の携帯用に分割するcgiを書く方が100倍マシな解決策だろ
それくらい直感でわかってから人の質問に答えろよ

まぁ出直して来い
0382デフォルトの名無しさん2006/01/04(水) 02:15:05
ファイルを分割すると、管理が面倒になるからなぁ。
特に素人客が運営することになると面倒。

しかしファイル自体を分割するのも手ではあるし、場合によっては(cgiなどを客が使いたがらないとか)使うのだから381は言い過ぎ。
0383デフォルトの名無しさん2006/01/04(水) 02:20:36
>>381みたいな口だけ番長は放っとけ
0384デフォルトの名無しさん2006/01/04(水) 02:23:17
cgiだと負荷が高くなるから、それがクリティカルなら分割の一手だね。
しかしそれ以外の状況では分割のデメリットが大きすぎる

381が言いすぎなのは間違い無いが、380の頭も固いな
0385デフォルトの名無しさん2006/01/04(水) 10:12:23
つまりDocomoの仕様が糞、というわけですね
0386デフォルトの名無しさん2006/01/04(水) 11:29:54
Dに限らずどれもこれも似たような状況ですがな(´・ω・`)
0387デフォルトの名無しさん2006/01/04(水) 12:03:48
>>分割
アップされるデータ形式が分からないんだけど、ものによっては圧縮したら回避できるとか、
そういうアプローチは可能? あとはいっそ携帯でダウンロードできるものを制限して表示とか。

目的が分からないと手段を探すだけになってしまって解決に結びつかないかも知れない。
0388デフォルトの名無しさん2006/01/04(水) 12:12:30
379のCGIを支持するような書き込みがあるが、おまえら大丈夫か?
この手のCGIは
split.cgi?filename=/etc/passwd&from=0&length=10240
のように使われて、意図しないファイルを読まれてしまってセキュリティホールに
なるものばかりなのだが。

ちゃんとファイル名のパスをチェックしているのか、えらく面倒だぞこれは。
../../etc/passwdとか、色々な書き方があるから。
普通こういうCGIは書かない。
プログラムを書けるようになったぐらいの駆け出し(または素人)っぽいやり方だ。

>>ファイルを分割すると、管理が面倒になるからなぁ。
そんな事無い。いちいち手でsplitしたら面倒だろうけど。
makeとかを使う。ちゃんとMakefileつくって置けば、ファイルをサーバに置いて
makeを動かせば更新(split)が必要なファイルは全て更新されるようにする。
あと大抵バージョンコントロールプログラムと併用する。
手が掛らないように、さらに安全に運用できるようにするもんだ。
0389デフォルトの名無しさん2006/01/04(水) 12:56:44
>>388
ああ・・・

お前は本当に何も考えてないアホだったんだ・・・

> ちゃんとファイル名のパスをチェックしているのか、えらく面倒だぞこれは。
…

> そんな事無い。いちいち手でsplitしたら面倒だろうけど。
………

もう黙っていていいよ
0390デフォルトの名無しさん2006/01/04(水) 13:04:40
内容の是非はともかく、ちゃんと説明文書いてる>>388と
ただ馬鹿馬鹿喚いてるだけの>>389じゃ説得力が違うぞ

煽るだけじゃなくて理由も書けや
0391デフォルトの名無しさん2006/01/04(水) 13:07:30
これだけレベルが違ったら、もう何言っても無駄だろ
0392デフォルトの名無しさん2006/01/04(水) 13:10:14
まぁなんだ。389は煽ってるだけなので確かに意味は無いが…。
それにしたって「パスチェック」なんてプログラマのイロハのイだし、
更新の度いちいちMakefileを走らせるなんてプログラマの思考じゃないだろう。

特に素人客なんぞ、Makefile走らせ忘れて夜中に「なんかダウンロードできないんですよ!!なんとかしてください!!」とかTELしてくる馬鹿ばかりだし。
0393デフォルトの名無しさん2006/01/04(水) 13:11:44
結論…データサイズ制限が糞
0394デフォルトの名無しさん2006/01/04(水) 13:17:51
ちょwww
携帯に制限無くたって、どの道サーバ側で制限するでしょうが。

おし、俺から提案。
人任せでもダメ、プログラム任せでもダメ。
ならば・・・

↓よろしく
0395デフォルトの名無しさん2006/01/04(水) 13:20:47
いっそ通信機能を無くしてしまえば良いのではないか
0396デフォルトの名無しさん2006/01/04(水) 13:22:50
388がひどい素人というのはよくわかった
0397デフォルトの名無しさん2006/01/04(水) 14:05:57
GPSアプリに興味があるのですが、1回の測定で大体いくらくらいのパケがかかるのでしょうか?
0398デフォルトの名無しさん2006/01/04(水) 14:23:33
<<397
タダ。
定額だけ相手にすればよし
0399デフォルトの名無しさん2006/01/05(木) 00:49:40
>>388
一応言っておくが、CGI書くのに入力値のチェックしないなんて有り得んよ。
0400デフォルトの名無しさん2006/01/05(木) 04:30:28
>>380
Win鯖つってもIIS+ASP(.NET)はApache+Tomcatより速くなるケースもある。httpdが落ちてもIISは速効復旧するし。ベンチは自宅鯖板で探してくれ。
mod_PHP/Java使うならUNIX+Apacheしかない罠。
>>388
明日出社したらSuEXECをOnにしておいてくださいね。
0401デフォルトの名無しさん2006/01/05(木) 12:17:08
>>400
>>明日出社したらSuEXECをOnにしておいてくださいね。
apacheの設定を知っているからと、あまり変に口出ししないほうがよいかと。
http:://hostname/~username/cgi/xxx.cgi
のような使い方するのは、レンタルサーバを使っているケースだけ。
CPの場合はhttpのユーザやグループを適切に設定してあるはずなので
SuEXECなんて関係ない。

他にも392のような、素人向のホスティング・サービスの話をしている人も
いるけど、ここはCPっていないの?
趣味でiアプリ作っている人向けのすれ?
0402デフォルトの名無しさん2006/01/05(木) 14:14:54
逆に言うと、CP向けだけで話しているわけでもない。
そのあたりは自分で考え、自分に役にたつ情報を取捨択一せい。
0403デフォルトの名無しさん2006/01/05(木) 14:46:46
仕事への意欲のある人間だらけだと思ってる奴発見www



ガンバレ('A`)
0404デフォルトの名無しさん2006/01/05(木) 17:26:45
>>401
apacheの設定を知っているからと、あまり変に口出ししないほうがよいかと。
0405デフォルトの名無しさん2006/01/06(金) 02:13:34
>>401
ガンバ(´д`)
今度はうまくやろうな
0406デフォルトの名無しさん2006/01/06(金) 02:20:16
>>401
なんか必死だな…
0407デフォルトの名無しさん2006/01/06(金) 10:32:21
401の人気に嫉妬
0408デフォルトの名無しさん2006/01/06(金) 23:23:52
401 Authorization Required
0409デフォルトの名無しさん2006/01/08(日) 15:06:56
すみませんが教えてください。
起動時にstartが呼ばれますが、終了時には何が呼ばれますか?

0410デフォルトの名無しさん2006/01/08(日) 15:42:11
何も呼ばれないよ。MIDPと違って。
0411デフォルトの名無しさん2006/01/08(日) 15:43:12
>>409
何も呼ばれない。

終了するのはプログラム自身がterminate()を呼び出したとき。
0412デフォルトの名無しさん2006/01/08(日) 17:27:29
シミュレータの動作ですが、電源ボタンとかで強制終了かけられた時、
スクラッチパッドに作業内容を書き出したいのですが、何も呼ばれない
とはorz
0413デフォルトの名無しさん2006/01/08(日) 17:50:10
基本的にスクラッチパッドへの書き込みは遅くないので、ことあるごとにセーブするしかないかなー。
0414デフォルトの名無しさん2006/01/08(日) 21:46:59
ども、ことあるごとにセーブします。
vodaで3Gになって異様にレコードストアへのアクセスがのろくなったので、
最後に書き込む方式にこっちも合わせようかと思ったのですが。
0415デフォルトの名無しさん2006/01/09(月) 22:44:17
SH901iS明日買うんだが・・・ファミコンエミュは爽快に動くのだろか。。誰か詳細頼む。
0416デフォルトの名無しさん2006/01/09(月) 23:07:29
2年ぶりくらいにiアプリを作ろうと思って
iDK(DoJa4.0)をインストールしようとしたんですけど
インストール時に「レジストリの書き換えに失敗しました」とか出てしまいます・・・。

OSはWinXP、JDKは1.3.1_17

同じような現象出た方いらっしゃいますか?
解決方法をご存知でしたらぜひアドバイスください。
0417デフォルトの名無しさん2006/01/10(火) 01:33:40
>>416
管理者権限ある?
04184162006/01/10(火) 01:57:26
>>417
Admin権限のユーザでやってますね。
同じユーザで他のアプリをインストールする分にはまったく問題ありませんでした。
他に思い当たる原因ありますでしょうか?
04194162006/01/10(火) 11:26:27
原因の切り分けをやってみました。

Doja3.5用のiDKまではすべて正常にインストールできますが、
4.0と4.1ではインストール時に「レジストリの書き換えに失敗しました」と出て、
それを気にせずに起動してみると、プロジェクトの新規作成や、ビルドボタンを押した時に
「レジストリの設定に失敗しました」と出てしまいます・・・。

4.0用のアプリを作りたいので、どうしても4.0用のツール使いたいんですが・・・
0420デフォルトの名無しさん2006/01/10(火) 11:40:14
ウィルス対策ソフトが邪魔してるとかは無い?
04214162006/01/10(火) 11:43:18
>>420
アドバイスありがとうございます。
ウィルス対策ソフトはノートンアンチウィルスを使ってますが、
DoJa3.5用まではノートン起動中でも正常にインストールできましたし、
ノートンを切って4.0用をインストールしてみても、結果は同じでした。
0422デフォルトの名無しさん2006/01/10(火) 16:43:44
3.5エミュのフォルダに、4.0のクラスファイルとかつっこめばいいんじゃね?
04234162006/01/10(火) 17:39:35
>>422
なるほど!それ試してみます。
0424デフォルトの名無しさん2006/01/10(火) 21:27:19
resフォルダにファイルを出力したいんですが

OutputStream out=null;
try
{
out=Connector.openOutputStream("resource:///test.txt");
String stuck = strbuff.toString();
byte[] playerDeck_data=stuck.getBytes();
out.write(playerDeck_data);
out.close();
}
であってますか?
同名のファイルがある場合って上書きされたりするんでしょうか?
0425デフォルトの名無しさん2006/01/10(火) 21:35:54
コンパイルは通ってる?
まずエミュレータで動かしてみることをすすめてみる。
0426デフォルトの名無しさん2006/01/10(火) 21:39:18
>425
コンパイルは通ってるんですが
out=Connector.openOutputStream("resource:///test.txt");
の部分でIOException:Cant open output stream directlyとでます;

なんか開けないらしいんですが、参考になるページとかありませんか?
txtファイルの読み込みのサンプルがあるページは見つかるのですが
txtファイルの書き込みはFileoutputとかしか見つからないんですorz
0427デフォルトの名無しさん2006/01/10(火) 22:11:50
>>426 おいおい。DoJaでresourceに書き出せるわけがないだろ。
0428デフォルトの名無しさん2006/01/10(火) 22:17:57
>427
ガーン、ということはスクラッチパッドですか;
0429デフォルトの名無しさん2006/01/10(火) 22:35:56
ファイル操作はまだ先の話なんぢゃないの?
実装状況キボン。
今は大人しくスクラッチパッドへ。
0430デフォルトの名無しさん2006/01/10(火) 22:38:38
>>416
regeditで以下のキーにゴミないかい?
HKEY_LOCAL_MACHINE\SOFTWARE\NTT DoCoMo\doja4.0
04314162006/01/10(火) 22:53:03
>>430
それも疑って、NTT DoCoMo以下のキーは強制的に削除して
試してみたことあるんですけど、結果は同じでした・・・。

ちなみに、インストール後、C:\iDKDoJa4.0\の下に
DoJa.regというファイルができてるんですけど、
これは正常にインストール完了した場合でもできるものですか?
それとも、レジストリの書き込みに失敗してるからできるものなんですかね?
04324272006/01/10(火) 23:38:20
P902iのプリインストールのゴルフゲームが、
データをminiSDに書こうとしているみたいなんだけど、
これは偽装GIFか何かなのかなぁ?

って調べてみたらDoJa-4.xのiアプリオプションに「第17章 外部メモリ」ってのがあったわ。
これでminiSDにファイル作れるっぽい。
0433デフォルトの名無しさん2006/01/11(水) 02:21:06
SD Bindingっていうんだよ
0434デフォルトの名無しさん2006/01/11(水) 12:24:58
スクラッチパッドにデータがあるかどうか判断するにはどうしたらいいでしょうか?
0435デフォルトの名無しさん2006/01/11(水) 12:44:24
>>434
スクラッチパッドにデータ入れたときにスクラッチパッドにどこかにフラグを保存するw
04364342006/01/11(水) 12:51:46
自己解決しました
0437デフォルトの名無しさん2006/01/11(水) 13:34:50
>>434-436
ひでぇ流れだ(;´Д`)
0438デフォルトの名無しさん2006/01/11(水) 15:14:03
( ;´Д`)アワワ
0439デフォルトの名無しさん2006/01/11(水) 18:56:12
0番地から1バイトまで保存した文字列の長さ
2〜Nバイトまでを保存した文字列
というフォーマットでスクラッチパッドに書き込みその後読み込む関数
textはStringで関数の引数
int size;
byte[] data;
OutputStream out=null;
InputStream in=null;

out=Connector.openOutputStream("scratchpad:///0;pos=0");
data=text.getBytes();
size=data.length;
out.write(size);
if(size>0)
{
out.write(data);
}
out.flush();
out.close();

in=Connector.openInputStream("scratchpad:///0;pos=0");
size=(int)(in.read());
data=new byte[size];
if(size>0)
{
in.read(data);
text=new String(data);
}
in.close();
を作成したんですが
なぜか書き込んだときのsizeは312なのに読み込んだときは56になってしまいます;
なんか間違ってますか?
0440デフォルトの名無しさん2006/01/11(水) 19:03:34
>>439 312 - 256はいくつかな。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/OutputStream.html#write(int)
0441デフォルトの名無しさん2006/01/11(水) 19:41:16
>440
・・・・・・・・・・orz

これ256以上書き込むときは分割して複数回書き込めってことですか?
0442デフォルトの名無しさん2006/01/11(水) 20:40:49
>>441
全然調べ足りてないよ
APIリファレンスでwriteInt()を調べな
0443デフォルトの名無しさん2006/01/11(水) 21:45:47
DataOutputのwriteInt()でバイトの長さを書き込んで
次にwriteBytes()で文字列を書き込むって感じでしょうか?

とりあえず試してみます。
0444デフォルトの名無しさん2006/01/12(木) 15:22:42
うむ。それが正しい。
0445デフォルトの名無しさん2006/01/13(金) 23:26:41
doja4.0で四角形のプリミティブにテクスチャを貼って表示したいのですが、
マスコットカプセルのページの資料にもサンプルが無く行き詰っています。
3.5のオプションの時は大丈夫だったのですが・・・。
すでにフィギュアを表示していて、地上の表現に使用したいと思っています。
なのでフィギュアが格納されているGroupオブジェクトに入れるわけでもなく、
g3.renderObject3D(primitive,trans);//地面の描画
みたいに別になるんですよね?
そもそもプリミティブ自体を表示できてもいない状態なので
余計な推測でしかないですが、どなたかご教授頂ければと思います。
長文失礼しました。
0446デフォルトの名無しさん2006/01/14(土) 02:08:34
うーん、何でPrimitei表示できてないんだろうねえ。
0447デフォルトの名無しさん2006/01/14(土) 11:17:35
445です。 自己解決しました。
なにやらアホなことやってまして。
getVertexArray()
で
primitive.getVertexArray()[i]=primitive_data[i];
となるところを
primitive_data[i]=primitive.getVertexArray()[i];
としてました。
ほんとお騒がせしました。m(_ _)m
0448デフォルトの名無しさん2006/01/14(土) 15:10:39
初歩的な質問で申し訳ないんだが、blenderで作った3Dモデルを
mascot capsuleで携帯向けに変換できるんだろか?

というか、皆さん3Dモデルのモデリングには何を使ってるんでしょか。
■ このスレッドは過去ログ倉庫に格納されています