Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

HTMLファイルを読み込むには・・・

strhtml = a.html;

File html = new File("c:/workspace/abc/"+strhtml);
BufferedReader br = new BufferedReader(new FileReader(html));

while (br.ready()) {
    String line = br.readLine();
    System.out.println("line:"+line);
}

このようにやっているのですがHTMLファイルを読み込めません。
どのようにしたらHTMLファイルを読み込むことができますか?

21

回答

84073

閲覧

21件の回答

評価

0

'/'を'\\'に変えたらどうなる?
File.separatorを使う方が無難だろうけど。

評価

0

ありがとうございます!
'/'を'\\'に変えてみましたがやはり読み込めませんでした。

HTMLは読み込めないのでしょうか?

評価

0

>HTMLは読み込めないのでしょうか?

もう、自分のことは棚にあげてんのかよ。
責任転嫁なんて、1000億年早いわい。

System.out.println(html.exists());
とか
System.out.println(html.getAbsolutePath());
くらい、いわれる前にやって見ろよ。

評価

0

あと、whileループに入る前に
System.out.println(br.ready());
もな。
ready()をんな使い方してるのは見たこと無いが。

評価

0

すみませんでした。
結果ですが、
html.exists():c:\workspace\abc\a.html
html.getAbsolutePath():ture
br.ready():false

という結果になりました。
パスの指定はできていて読み込みはできないとう結果
でwhileには入らなかったみたいですね。

評価

0

んじゃ、次はループの中身はそのままで、
whileのガワだけ、取り除いてみたまえ。
1行読んで表示、ができるかどうか、
動作確認としてなら十分でしょ。

評価

0

line:null
と表示されました。
完璧読み取れていないってことですよね。

不良社員さんのお時間割いてしまって申し訳ございません。

評価

0

ん? 結果が納得いかんなあ。
そのファイルは空っぽだったりするのか。

評価

0

ファイルの中身ですがこのようになっています。

<html>
<head>
<title>FavoriteCarrier</title>
<style type="text/css">
li       { list-style-image:url(./fol1.gif); cursor:hand; }
li.lnk   { list-style-image:url(./lnk.gif); }
li.close { list-style-image:none; list-style-type:none; height:0px; display:none; }
li.open  { list-style-image:none; list-style-type:none; height:0px; display:open; }

</style>
<script type="text/javascript">
function fol(obj, my) {
  if (document.getElementById("f"+obj)) {
    if (document.getElementById("f"+obj).className == "close") {
      document.getElementById("f"+obj).className = "open";
      my.style.listStyleImage = "url(fol2.gif)";
    } else {
      document.getElementById("f"+obj).className = "close";
      my.style.listStyleImage = "url(fol1.gif)";
    }
  }
}
</script>
</head>
<body>
<ul>
  <li onclick="fol('1_1', this)">JAVA</li>
  <li id="f1_1" class="close"><ul>
    <li class="lnk"><a href="http://www.confrage.com/eclipse/index.html">Eclipse</a>
    <li class="lnk"><a href="http://sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/index.html">Java 2 Platform EE v1</a>
    <li class="lnk"><a href="http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/index.html">Java 2 Platform SE v1</a>
    <li class="lnk"><a href="http://www.kab-studio.biz/Programing/JavaA2Z/index.html">JavaA2Z</a>
    <li class="lnk"><a href="http://www.hellohiro.com/">JavaでHello World</a>
    <li class="lnk"><a href="http://www.javaroad.jp/">Javaの道(Java入門・リファレンス)</a>
    <li class="lnk"><a href="http://www.crew.sfc.keio.ac.jp/~duskin/prog2004spring/faq/compileerror.html">よくあるコンパイルエラー集</a>
    <li class="lnk"><a href="http://www.cresc.co.jp/tech/java/Servlet_Tutorial/index.htm">サーブレット・チュートリアル</a>
    <li class="lnk"><a href="http://www.lcv.ne.jp/~kenmio/">楽しいJava入門</a>
    <li class="lnk"><a href="http://www.nextindex.net/java/index.html">浅煎り珈琲 -Java アプリケーション入門</a>
  </ul></li>
</ul>
</body>
</html>

空ではないので読み込まれると思ったんですが、
読み込まれていないというかむしろ読み込めない
といった感じでしょうか。

評価

0

手元で同様のコードで試してみたが、
'line:null'にはならんなあ。
1行目を空行にしても、'line:'になるだけだし。

申し訳ないが、役には立てそうにないです。

public static void main(String[] args) throws IOException {
  File file = new File("hogehoge.txt");
  System.out.println(file.getAbsolutePath());
  System.out.println(file.exists());
  BufferedReader reader = new BufferedReader(new FileReader(file));
  System.out.println("first line : " + reader.readLine());
}

評価

0

その「ファイルの中身」って、ほんとにそれをコピーするときに開いたもの?
以前、メモ帳を開いて中身を編集したはいいけど、保存してなかったからプログラムで読み込めなかった、なんてアホなことしてた人がいた。

評価

0

空のファイルを用意してためしたら同じ結果(null)に。

ホントにc:\workspace\abc\a.htmlに書いてますか?

評価

0

"c:/workspace/abc/"
→ "c://workspace//abc//"

評価

0

File#exists()はtrueを返してるらしいしな。

Windowsで '/' を使っても、通ることは通る。
'\' なら、文字列の中ではふたつ並べないとそもそもコンパイルできないし。
'\\'でも'/' でも、連続でいくつ並べても同じ。

評価

0

しつれいしました。
NT系OSの暗号化属性(アクセス)が設定されてとか・・。

評価

0

どうも、拡張子がtxtだと開けるのですがhtmlの拡張子
だと開けないという感じがします。
なのでhtml拡張子を消してtxt拡張子に変更するロジックを作成してチャレンジしてみようと思います。

みなさんご協力ありがとうございます!

評価

0

>toshi2氏
権限ではじかれたときに、Exceptionが発生しないなら、その線が濃厚だね。
ちなみに、発生するのかしないのか、俺は知りません。

>スレ主殿
>どうも、拡張子がtxtだと開けるのですがhtmlの拡張子
>だと開けないという感じがします。

「感じ」じゃなくて、実際に拡張子を変更して試してみたまえ。

評価

0

試したけど開けましたよ<htmlファイル

ファイルが存在しているのに、
ストリームの終わりを示すnullが入るということは、
もうファイルの中身が空としか考えにくいのですが?

>html拡張子を消してtxt拡張子に変更するロジック
このほうが難しいと思うのは私だけでしょうか?

評価

0

難しくはないけどバカらしいですな。

評価

0

>コロ氏
濃厚、と書いたのは勇み足だったか。失礼しました。m(_ _)m

>$氏
拡張子を変えさえすれば、ファイルのコンバートが
完了する、って信じてる人、今もいるんだろうか。

ところで、「a.html」と「a.html.html」という
2種類のファイルがある、というオチもありそう。
「拡張子は表示しない」オプションは、オフになってるんだろうね。

評価

0

a.html.txtですか。
初心者にはありがちだけど、exists()で(本当に)trueが返ってるとなると…。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。