X



Java入門・初心者質問スレ(ワッチョイなし) Part.8
■ このスレッドは過去ログ倉庫に格納されています
0106デフォルトの名無しさん
垢版 |
2022/10/17(月) 20:18:51.42ID:iB2BuPk8
>>105

classにstaticをつけると

class Outer {
 int outerValue;

 class Inner {
  int getValue() {
   return outerValue;
  }
 }
}

こういう外側のインスタンスメンバにアクセスするのができなくなる

あとはインスタンス化するとき

// 非static classはこう
var inner = new Outer().new Inner();

// static classはこう
var inner = new Outer.Inner();

違いはそれくらい
0107デフォルトの名無しさん
垢版 |
2022/10/18(火) 20:47:06.34ID:1IjYJ9hM
>>103
>>104
ありがとう新明解国語辞典見てみるわ
0108デフォルトの名無しさん
垢版 |
2022/10/18(火) 20:47:29.25ID:1IjYJ9hM
間違えた新明解
0109104
垢版 |
2022/10/19(水) 12:27:03.98ID:rgBskw8B
多言語・多技術の2大著者が、掌田津耶乃・山田祥寛

それに続くのが、柴田望洋・スッキリ・やさしい・猫でも・クジラ飛行机など
0110デフォルトの名無しさん
垢版 |
2022/10/22(土) 09:23:29.67ID:jFXR8DIz
あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか
0111デフォルトの名無しさん
垢版 |
2022/10/23(日) 05:19:04.70ID:aEccmvj8
0円で売ってるHTMLの入門書の0ページに書かれてるようなことすらわからないチンパンは
5chで質問する前に本読むなりググったりしろゴミ
0112デフォルトの名無しさん
垢版 |
2022/10/23(日) 05:29:08.07ID:5goUGe53
>>111
コミュ障だからってウザ絡みでしか対人関係を築くスキルが無い人は面倒なのと、
そういう煽りは時代遅れなんでいいです。
なので引き続き再掲


あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか
0113デフォルトの名無しさん
垢版 |
2022/10/23(日) 08:01:21.99ID:ARaLWBIR
内容による。

ていうかそれ以前の問題として、スレチだ。
ここは Java のスレであって JavaScript のスレではない。
0115デフォルトの名無しさん
垢版 |
2022/10/23(日) 09:09:59.18ID:5goUGe53
あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか

分かるならすっと即答してくれりゃ解決するのになぁ、勿体ぶるってことは知らないってことなんだろうなぁ、でも口をはさみたいという?
0116デフォルトの名無しさん
垢版 |
2022/10/23(日) 09:31:10.70ID:aEccmvj8
準知的障害者の怖いところってこういう自覚0なところなんだよな
学生のときに全教科オール1取ってる奴がいたんだけどそいつは普通に会話もできるし家庭教師もつけてたんだわ
でも毎期全教科オール1
大人になってから偶然あったときはいろいろと残念なことになってたのは言わずもがな
この無自覚のバカもたぶん同じタイプの池沼で小学生でもHTMLの本渡せば1分でわかることを延々と他人に聞く
自決能力が皆無の思考能力0バカ人間
お前がプログラムを学んでも周りに迷惑をかけるだけなのでとっとと諦めて消えろゴミ
0117デフォルトの名無しさん
垢版 |
2022/10/23(日) 09:52:19.06ID:RbPPD++E
自覚ゼロでワロタ
0118デフォルトの名無しさん
垢版 |
2022/10/23(日) 09:55:36.17ID:RbPPD++E
こういうやつ某QAサイトにもいるわ
質問に答えてないことを指摘したら顔真っ赤にしてキレ出すやつw
答える気ないならスルーしろよw
0119デフォルトの名無しさん
垢版 |
2022/10/23(日) 10:09:32.61ID:aEccmvj8
お前のは質問とすら言えないほど幼稚な内容だからただの荒らしなんだわ
答えたら100%居つくからこうやって撃退するしかないんだよね
わかったらとっとと消えろゴミ
0121デフォルトの名無しさん
垢版 |
2022/10/23(日) 11:45:50.97ID:5goUGe53
あるwebサイトで動いている.jsのサイトがあって、
(そこでは.jsと.cssがgithubで配布されてる)
それを自分のブラウザで実行してみたいのだが、
つまり上にあるwebサイトにいかず、自分のデスクトップにある.htmlファイルなんかをクリックすることでブラウザで開いてい実行したいのだが、
どのようにしたらいいのか
.jsと.cssだけではなく、動いているwebサイトの中のソースも必要なのだろうか
具体的にどう記述してやればいいのか

教えてくださいよ、勿体ぶらずに
0124デフォルトの名無しさん
垢版 |
2022/10/23(日) 12:04:10.45ID:5goUGe53
>>122
そこはワッチョイもあるしIPも表示するカスなので無理です
あと末尾Mですね

>>123
親切にありがとう
でもせっかくだから四半世紀くらい居座らせてもらおうかなってこれも何かの縁でしょうし
0125デフォルトの名無しさん
垢版 |
2022/10/23(日) 12:06:06.03ID:90lYCcy6
217 今、天王星のwiki見てきたら軌道傾斜角(i) が0.774°だった (ワッチョイ 897b-UuoP) 2022/10/23(日) 11:41:24.81 ID:EvlJxUOY0
今のワイ
・ほぼほぼgitの扱いが分かるかもしれないになってきた
・pythonもなんとなく分かるかかもしれないになってきた
・webuiの機能についてもなんとなく頭に入った、web版とローカル版のプロンプトの違いもなんとなく
・wikiのプロンプト変換便利じゃねと気づく
・ギフハブみて.cssと.jsを得て、オンラインで動かしてみてえなぁと思う
(オフラインで自分のブラウザで実行してみたい、wikiとかの項目がない感じで)ブラウザにこの画面だけ出る感じで
https://i.imgur.com/OPzQsQb.png

早速プログラム板いって聞いてみるも速攻で煽れたので暴れ返し中
Java入門・初心者質問スレ(ワッチョイなし) Part.8
https://mevius.5ch.net/test/read.cgi/tech/1528554781/110 これがワイ
0127デフォルトの名無しさん
垢版 |
2022/10/23(日) 12:27:20.53ID:XiKhR8QJ
>>121
ブラウザで普通に保存したらいんじゃないかな
0128デフォルトの名無しさん
垢版 |
2022/10/23(日) 12:59:59.36ID:5goUGe53
普通に保存じゃ満足いかんでな
せっかくやから学んでみよう思ったんやで
0129デフォルトの名無しさん
垢版 |
2022/10/23(日) 13:23:36.79ID:XiKhR8QJ
>>127
> あるwebサイトで動いている.jsのサイトがあって、
あるサイトとはどこのサイトなの?

> wikiのプロンプト変換便利じゃねと気づく
何のwikiなの?
プロンプト変換って何?

> ギフハブみて.cssと.jsを得て、オンラインで動かしてみてえなぁと思う
ギフハブの何を見たの?
0130デフォルトの名無しさん
垢版 |
2022/10/23(日) 13:24:20.69ID:XiKhR8QJ
何をやろうとしてて何に困ってるのかわからないので
もっと詳しく具体的に教えて
0131デフォルトの名無しさん
垢版 |
2022/10/23(日) 15:29:35.01ID:5goUGe53
あるwikiでギフハブの.cssと.jsを参照しているファイルがある
これをオフラインでブラウザで表示しようとしている
適当にフォルダを作りその中にindex.htmlを作り
stylesフォルダ(ここにcss入れる)、scriptsフォルダ(ここに.js入れる)も作る
https://i.imgur.com/oeV13yw.png
indexはこんな感じや。うごかない。
0132デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:27:10.09ID:5goUGe53
自力で何とかいけた
クソやりたくもないのにhtmlやのjavaやのcssやの
もう気づいたら夕方やんけ
htmlの基礎からcssの基礎からjavaスクリプトの基礎から何時間かかったよ
くたびれた

せっかくやからパイソンも勉強するためにこのスレにいることにするで
0133デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:30:59.15ID:XiKhR8QJ
Pythonスレの方がいんじゃない?
0134デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:35:15.48ID:XiKhR8QJ
自己愛性パーソナリティ障害っぽいな
0135デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:36:57.76ID:5goUGe53
>>111
このあたりのやり取りからファイトメラメラになったからここを巣にするで
もちろんパイソンも行き来するが
案外楽しいものやなプログラミング
あとリアルスティックにするとラブドールぽくなるから注意や
あ、これはなんUに書くべきか
まあええで
0136デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:38:02.71ID:YzYXhWAT
JavaScript(JS)の質問は、web制作管理板の方へ書き込んでください!

ここは、Java のスレです。
JSとは異なる言語です!
0137デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:41:54.10ID:XiKhR8QJ
>>135
JavaとJavaScriptは違うものだよ
0138デフォルトの名無しさん
垢版 |
2022/10/23(日) 16:53:54.42ID:4U8zQ6vT
ファイトメラメラという言葉のセンスがたまらないw
昭和の小学生(現在無職おじ)って感じなん?
0139デフォルトの名無しさん
垢版 |
2022/10/23(日) 17:56:46.87ID:a4G1Se92
Web制作板で聞いたらみんないっぱい答えてくれると思うけどw
ここだとおそらく今後は単に無視されるよ
Java言語っていうプログラミング言語のスレでしかないもんここは
0141デフォルトの名無しさん
垢版 |
2022/10/23(日) 19:04:26.21ID:4U8zQ6vT
ファイトwメラメラwwwなんだからしょうがないじゃないかーw
ムッシュムラムラみたいなもんだよw
0142デフォルトの名無しさん
垢版 |
2022/10/23(日) 19:12:00.30ID:JMkngxYN
せや。
もっと言うたれ。
0143デフォルトの名無しさん
垢版 |
2022/10/25(火) 12:30:07.19ID:5OiGFok6
来月からJavaのプロジェクトに入るのですが
未経験で独自フレーム扱ってる企業で経験積んだ場合、springとか使ってる企業に転職するとき不利になったりしますか?
0144デフォルトの名無しさん
垢版 |
2022/10/25(火) 16:46:06.98ID:DR1nXe5F
>>143
springの即戦力を探していて、同じくらいのレベルのspring経験者が競合だったら
不利になるかもしれないね。
あとは宗教的理由でspring使っていなかった人でなし扱いされるとか。

ぶっちゃけ、派遣契約じゃあるまいし、転職でそんな末節の部分の経験が
クローズアップされて重要視されて採用の可否を左右するような会社だったら
そいつは間違いなく自転車操業でその場当たりの仕事をしてるだけのブラック
だから、やめたほうがいいよ。
0145デフォルトの名無しさん
垢版 |
2022/10/25(火) 18:37:47.22ID:+4Zatp0y
独自フレームワークはキツイね
当たり前だけど、ググっても使い方が出てこない
独自フレームワーク使ってるような現場は学習コストを理解できない奴が多いから即戦力を求められたりもする
避けたほうがいいよ
0147デフォルトの名無しさん
垢版 |
2022/10/26(水) 06:57:59.07ID:s5JffxrA
>>144
なるほど
詳しく教えていただきありがとうございます
同レベルの競合以外だとそんなに気にする要素ではないんですね
他の部分で差をつけれるよう頑張りたいと思います
0148デフォルトの名無しさん
垢版 |
2022/10/26(水) 07:01:20.87ID:s5JffxrA
>>145
現場入り前に勉強しておきたいと色々調べましたが全く情報出てこなかったですね
仰るとおり当然なのですが
0149デフォルトの名無しさん
垢版 |
2022/10/26(水) 07:03:56.22ID:s5JffxrA
>>146
すみません
僕自身が勝手にそう呼んでいるだけです
誤解招かないように今後は省略せず言った方がいいですね
0150デフォルトの名無しさん
垢版 |
2022/11/01(火) 18:53:21.51ID:ABUFDoTf
マルチコア/マルチスレッドの恩恵を受けるには自分でスレッド生成しないといけないのですか
コンパイラーやランタイムが依存関係のないコードを見つけて勝手に複数スレッドに割り当ててくれるとかはない?
0151デフォルトの名無しさん
垢版 |
2022/11/01(火) 19:24:05.52ID:dsWI6EQ8
stream.parallel()でおk
0152デフォルトの名無しさん
垢版 |
2022/11/02(水) 13:20:19.60ID:vMMEg+Mo
mainメソッドでどこも引数はstring型の配列で書かれていますが、配列じゃないstring型では駄目な理由ってなんでしょうか?(String argsとしている例文が無いので気になりました)
0153デフォルトの名無しさん
垢版 |
2022/11/02(水) 13:35:01.59ID:psS6Ohct
コマンドライン引数は複数渡されるから
配列が嫌なら可変長引数でもいいよ

String args...
0154デフォルトの名無しさん
垢版 |
2022/11/02(水) 13:36:56.10ID:Mo275nPV
mainメソッドの引数の型はjavaコマンドの仕様で決まってるから、変えたらjavaコマンドからmainメソッドが呼ばれない

https://docs.oracle.com/en/java/javase/19/docs/specs/man/java.html
java コマンドは、Java アプリケーションを起動します。これは、Java仮想マシン(JVM)を起動し、
指定されたクラスをロードし、そのクラスのmain()メソッドを呼び出すことによって行われます。
このメソッドは、publicかつstaticに宣言され、いかなる値も返してはならず、
パラメータとしてString配列を受け入れなければなりません。
メソッド宣言は次のような形式です。

public static void main(String[] args)
0156デフォルトの名無しさん
垢版 |
2022/11/05(土) 06:14:02.19ID:NStZHHEn
vscodeとdockerでj2ee開発がしたいです
0157デフォルトの名無しさん
垢版 |
2022/11/12(土) 14:55:11.16ID:qdrZPiGz
そうですか。どうぞ。思う存分開発してください。
0158デフォルトの名無しさん
垢版 |
2022/11/12(土) 17:35:28.18ID:FmoZ/iIO
>>151
レス遅れてごめんなさい
ありがとうございます

やはり何がしかのコーディングでの細工がいるということですね
勉強してみます
0159デフォルトの名無しさん
垢版 |
2022/11/15(火) 00:58:46.79ID:jauoG5/n
Set の中のオブジェクトへの参照を順次検索なしに直接取り出すことはできますか?

a と b は同じクラスの等価で異なるオブジェクトです (a!=b かつ a.equals(b) が真)
オブジェクト a への参照だけが既知で set.contains(a) が真の場合に set の中にあるオブジェクト b への参照を取り出すことはできないでしょうか
Set のサイズが大きいのでできれば順次検索は避けたいです

現在はとりあえず Set の代わりに Map を使って key と value に同じオブジェクトにする (map.put(b,b) のようにして要素を入れる) ことにして map.containsKey(a) が真のときに map.get(a) で b への参照を取得していますが他にいい方法がありましたら
0160デフォルトの名無しさん
垢版 |
2022/11/15(火) 01:18:13.67ID:+7S+1nVk
java.util.Set だと a.equals(b) が真のとき、 set.contains(a) と set.contains(b) は排他のはずだが……
java.util.Map も同一キーで複数の値は持てないはず

commons とかのサードパーティライブラリに MultiMap とか MultiValuedMap とかあるからそっち使うか
適当なクラスを自作するしかないんじゃね?
0161デフォルトの名無しさん
垢版 |
2022/11/15(火) 02:06:57.12ID:jauoG5/n
>>160
レスありがとうございます
説明が悪くすみません Set / Map に重複要素/重複キーが許されないのは承知しています

java.util.Set の中に入っているのはオブジェクト b だけで、a.equals(b) (すなわち Set.cotains(a) が真) を満たすオブジェクト a を釣り餌?にして b への参照を取り出したいというのが希望です
0162デフォルトの名無しさん
垢版 |
2022/11/15(火) 11:50:32.66ID:EEXuOoXM
その用途だとMapが良いと思うよ
比較のkeyと取得したいvalueが異なるんでしょ
JavaのHashSetは内部でHashMapを使ってるからコストは同じだよ
0163デフォルトの名無しさん
垢版 |
2022/11/15(火) 11:51:09.49ID:EEXuOoXM
Setが内部に保持してるオブジェクトを取得するのは無理
0164デフォルトの名無しさん
垢版 |
2022/11/15(火) 11:58:16.62ID:EEXuOoXM
自作するとしたら配列に入れて二分探索しとくかなー自分なら
0165デフォルトの名無しさん
垢版 |
2022/11/15(火) 23:19:45.65ID:jauoG5/n
>>162-164
なるほど HashSet のドキュメントとソースを見ると HashMap を使って実装していました (細かいところは理解できませんでしたが)
Mapを使うと要素追加が map.put(b, b) となるところになんか違和感を感じていたのですが 気持ちの問題だけでやりたいことはできているのでこのまま行くことにします

ありがとうございます
0166デフォルトの名無しさん
垢版 |
2022/11/19(土) 23:34:45.44ID:DF7A563Z
なんかCSVファイルをレコードの3番目の項目をキーにソートしたいんですが
文字列が入ってるからint型とかにするのは無理
なんでこんなに複雑になるんだろう
何か良い方法ありますか?

Arrays.sort
これってint型しか入れられないような
駄目

Comparableインターフェースを自作してなんちゃらって
大掛かり過ぎて書くのもテストするのも偉い大変そうでパス

なんか結局キーにしたい項目一番左に持って行って全部入れ替えながら
もう一回カンマ区切りのレコード編集し直してそれを配列でなくリストに入れてって
リストをソートして
ソート後のリストからレコード並びを元の並びに直しながら取り出して
FileWriterしてみたいな超見辛くてダラダラ長ったらしくなった

IOどっちもテキストファイルだし外部ソートにしてなんか適当なツールにやらせた方が早かった気もするけど
外に飛んでる間に何起きるかわかんないし処理内容から非同期処理に出来ないし
0167デフォルトの名無しさん
垢版 |
2022/11/19(土) 23:58:21.53ID:k9Zay3Yr
特定のコードを入れると処理時間が増えてしまう現象があり原因を調べたいと考えています
(問題となるコードの実行は1msecもかからないがパスが変わらないはずの後続の処理時間が数10%増加する)

メソッドごとの経過時間や通過回数をレポートできるようなツールはないでしょうか
仕事ではなくお遊びのプログラムなのでフリーのものが希望です
0170デフォルトの名無しさん
垢版 |
2022/11/20(日) 00:08:47.23ID:JVotRhyN
俺だったらLinqのJava移植を探して使うかな(良いのがあるか知らんけど)
良いライブラリ見つけたら教えてくれや
0171デフォルトの名無しさん
垢版 |
2022/11/20(日) 00:12:58.34ID:awzhVuxm
Eclipse Collectionsが良いよ
メソッド名が独特だけど機能的にはLINQと同等
0172デフォルトの名無しさん
垢版 |
2022/11/20(日) 00:34:38.24ID:f6/NLLue
>>171
なかなかいいね
メソッド呼び出しのたびにコレクションを生成してるっぽいのが気になるけど
0173デフォルトの名無しさん
垢版 |
2022/11/20(日) 00:36:22.88ID:awzhVuxm
そだね、lazyにするといんだけど暗黙にlazyなLINQよりそこは面倒だね
0174デフォルトの名無しさん
垢版 |
2022/11/20(日) 00:37:59.54ID:awzhVuxm
RustのようにIteratorをリッチにする方が個人的には気に入ってるから自分は自作のもの使ってる
0176デフォルトの名無しさん
垢版 |
2022/11/21(月) 00:31:17.15ID:zl3srpIC
> キーにしたい項目一番左に持って行って

この時点で行から目的のカラムが取り出せてるのだよね
行がStringからあと一息で
Comparator<String>.compare(String, String)
が作れるはず
その他のメソッドは実装不要
それを
Arrays.sort(String[], Comparator)
に食わせる
0178デフォルトの名無しさん
垢版 |
2022/11/23(水) 16:38:10.39ID:AFJ8L5wc
File fileA = new File("D:\\imgCom\\imgA.png");
File fileB = new File("D:\\imgCom\\imgB.png");
imgA = ImageIO.read(fileA);
imgB = ImageIO.read(fileB);
対象ファイルはあるのに何故ファイルの読み込みエラーが出るのでしょうか?
0179デフォルトの名無しさん
垢版 |
2022/11/23(水) 17:38:44.00ID:vX9x7DJK
学生だと思うけど質問する奴にこういう小中学生レベルの頭の弱い奴しかいない現象に名前をつけろ!!!
0180デフォルトの名無しさん
垢版 |
2022/11/23(水) 17:39:36.21ID:gB3NJ+gJ
>>178
エラーメッセージ省略せずにみせて
0181デフォルトの名無しさん
垢版 |
2022/11/23(水) 18:57:56.07ID:AFJ8L5wc
>>180
javax.imageio.IIOException: Can't read input file!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1308)
at testCase.Test.main(Test.java:19)
になります
0182デフォルトの名無しさん
垢版 |
2022/11/23(水) 19:26:34.18ID:gB3NJ+gJ
・ファイルが存在しない
・ファイルに排他ロックが掛けられている
・ファイルの読み取り権限がない
・ファイルがpngじゃない
あたりじゃないかな
0183デフォルトの名無しさん
垢版 |
2022/11/23(水) 19:44:00.90ID:AFJ8L5wc
ありがとうございます。
対象ファイルの「プロパティ」->「セキュリティー」タブ->Object nameから絶対パスをコピーしてるので、間違いは無いかなと思います。
また、アクセスコントロールにあってもFull controlはAllowです。
ファイルに排他ロックが掛けられているか調査方法を調べて確認してみます。
0184デフォルトの名無しさん
垢版 |
2022/11/23(水) 20:50:38.98ID:fWlvRvyL
パスが正しいかもチェックしてみたら?

fileA.exists();
fileB.exists();

https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html#exists--
この抽象パス名が示すファイルまたはディレクトリが存在するかどうかを判定します。
戻り値:
この抽象パス名が示すファイルまたはディレクトリが存在する場合はtrue、そうでない場合はfalse
0185デフォルトの名無しさん
垢版 |
2022/11/23(水) 20:52:17.73ID:fWlvRvyL
さらに読み取れるかどうかも。

https://docs.oracle.com/javase/jp/8/docs/api/java/io/File.html#canRead--
public boolean canRead()
この抽象パス名が示すファイルをアプリケーションが読み込めるかどうかを判定します。一部のプラットフォームでは、読取り不可としてマークされたファイルの読取りを許可する特別な権限を使用してJava仮想マシンを起動できる場合があります。その結果、このメソッドはファイルに読取り権がない場合でもtrueを返す可能性があります。
戻り値:
この抽象パス名が示すファイルが存在し、さらにアプリケーションがそれを読み込める場合だけtrue、そうでない場合はfalse
0186デフォルトの名無しさん
垢版 |
2022/11/23(水) 23:29:57.99ID:AFJ8L5wc
便利な関数ありがとうございます!
上記の関数を使用し、パスと読み取りを確認したところ、
どちらもfalseでした。
そのため、まずはパスを確認してみます。
0187デフォルトの名無しさん
垢版 |
2022/11/23(水) 23:56:32.27ID:VU/69mxi
ファイルパスをコピペしてFile.exists()がfalseって、ファイル名に多バイト文字使ってたりしない?
もし多バイト文字使ってて、Windows, Linux, Macが混在してるなら、MacのNFDモドキが悪さしてる可能性もある
(ソースコードかファイル名のどちらかがNFDモドキで、文字列の見た目は同じだけどbyte列は異なってる状態)
0188デフォルトの名無しさん
垢版 |
2022/11/24(木) 00:17:48.48ID:GOz0PxsF
window10の環境下において、
ペイントから新規作成した画像ファイルに半角英字でファイル名を付けて保存したので、多バイト文字ではないと思っているのですが。
また、ソースコードの文字エンコードをMS932、US-ASCII、UTF-8などに変更して実行しましたが結果は上記と同じくfalseのままでした。
0189デフォルトの名無しさん
垢版 |
2022/11/24(木) 00:36:04.87ID:nMnqMq4E
ああ、多分分かった
その、ファイルプロパティダイアログからコピペすると余計な制御コードがパスの文字列の先頭についてるみたい(Windows10)
"D:\\.." の "D" の前に余計な(見えない)キャラクタコードが含まれてるはず
"D" からダブルクオートの前まで削除して手打ちしなおすと動作したりしない?
0190デフォルトの名無しさん
垢版 |
2022/11/24(木) 01:38:13.56ID:GOz0PxsF
手打ちでも動作はされませんでした。
パスの書き方がおかしいのか調べてみます。
0191デフォルトの名無しさん
垢版 |
2022/11/24(木) 02:03:32.83ID:GOz0PxsF
連投すみません。解決いたしました。
原因はパスの書き方で、
File fileA = new File("D:/imgCom/imgA.png");
だとパスが通りました。
いろいろと教えていただき、ありがとうございました。
0192デフォルトの名無しさん
垢版 |
2022/11/24(木) 08:22:46.61ID:FTZ0YYIj
Ruby では、"〜"内では、\ に特殊効果があるけど、
'〜'内では、単なる普通の文字

'C:\Users\Owner\Documents\a.txt'
"C:\\Users\\Owner\\Documents\\a.txt"

または、
'C:/Users/Owner/Documents/a.txt'
"C:/Users/Owner/Documents/a.txt"
0194デフォルトの名無しさん
垢版 |
2022/11/24(木) 10:20:34.70ID:vkGk9f3G
Unicodeの問題だったのかな?
Shift_JISでは円記号とバックスラッシュの文字コードは同じだったけど、Unicodeでは区別される
円記号を2つ並べても意味がない
0195デフォルトの名無しさん
垢版 |
2022/11/24(木) 12:09:55.30ID:nMnqMq4E
>>191
それなら new File(”D:\\imgCom\\imgA.png”) でも動作するよ
>>178で駄目だったときはエクスプローラのダイアログからコピペしてから \ を2重化したんじゃない?
その場合、>>189で書いたように " と D の間に U+202A (LEFT-TO-RIGHT EMBEDDING) キャラクタ(見えない)が含まれてしまうので、
Java (というかWindows) は [U+202A]D:\imgCom\imgA.png というファイルを開こうとして失敗する

189できちんと2重にしてたから理解していると思って雑に"コピペして"とか書いたけど、
Javaでは " で囲まれたStringリテラル中の \ はメタキャラクタだから \ 自体は常に2重にしないといけない
コピペしてもそこは修正するという前提だった(すまんです
0196195
垢版 |
2022/11/24(木) 12:12:54.20ID:nMnqMq4E
すまん
File("...")
のところのダブルクオートが1byteじゃなくなってるけど、そこはただの 0x22 ね
0197デフォルトの名無しさん
垢版 |
2022/11/24(木) 15:40:02.70ID:SQk/u2nY
>>195
確かにバックスラッシュ2個でも実行できました。
LEFT-TO-RIGHT EMBEDDING) キャラクタが含まれていたから失敗していたわけですね。
大変勉強になりました。ありがとうございます!
0198デフォルトの名無しさん
垢版 |
2022/11/25(金) 09:44:48.95ID:bgrwCnOq
対象ディレクトリの中にファイル(001.et,002.et,003.et, .. xxx.et)が複数あり、
001.etと002.etを比較し、その後に002.etと003.etを比較、さらに003.etと004.et
を比較し、最後のファイルを比較したら完了するプログラムを作りたいのですが、
書き方としてはdo whileかwhileどちらが一般的でしょうか?

条件:ディレクトリには2つ以上のファイルが存在するものとする
0199デフォルトの名無しさん
垢版 |
2022/11/25(金) 11:20:26.35ID:JrCD+ieJ
Ruby では、each_cons を使う

p ary = %w(35 11 3) # 文字列配列
#=> ["35", "11", "3"]

ary.sort!
p ary #=> ["11", "3", "35"]

p result = ary.each_cons( 2 ).map{ |a, b| a + b }
#=> ["113", "335"]

"11" + "3"
"3" + "35"
0201デフォルトの名無しさん
垢版 |
2022/11/25(金) 19:12:08.62ID:bTqKud61
>>198
> 条件:ディレクトリには2つ以上のファイルが存在するものとする

とはいえ二個未満のときに対応できないのは嫌だから
do whileかwhileかでいうとwhileでやるかな?
あと自分でやるならforでやっちゃうかな?
https://ideone.com/EmiFYo
File[] files = {
new File("A"), new File("B"), new File("C"), new File("D")
};
for (int i = 0; i < files.length - 1; i++) {
System.out.println(files[i]+", "+files[i + 1]); // ここで比較
}
0202デフォルトの名無しさん
垢版 |
2022/11/25(金) 22:07:40.64ID:HKx7E2/E
public static void main(String[] args) {
 var dir = Path.of(".");

 try (var files = Files.list(dir)) {
  var it = files.iterator();
  var p = (Path) null;

  while (it.hasNext()) {
   var c = it.next();

   if (p != null) {
    System.out.println(p + ", " + c);
   }

   p = c;
  }
 } catch (IOException e) {
  throw new RuntimeException(e);
 }
}
0203デフォルトの名無しさん
垢版 |
2022/11/25(金) 22:07:52.98ID:HKx7E2/E
whileだな
0205デフォルトの名無しさん
垢版 |
2022/11/26(土) 06:20:46.32ID:2itlL9Sj
ファイルパスエラーとかっていう超絶頭の悪い問答を何日も続ける低次元っぷりに絶望するゴミスレ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況