2016-08-23 11 views
0

私はローカルディスク内に画像ファイルとhtmlファイルを保存し、htmlファイルを開くためにローカルホストを使用するたびに、htmlの画像をaotuに置き換えます私のローカルディスクにある画像。何が起きているのですか? THXコードbFileInputStream htmlのアイコンを置き換えずにhtmlファイルを読み取る方法

String parts[] = request.split(" "); 
     if(parts.length==3){ 
      if(parts[0].compareTo("GET")==0){ 
       String filename = parts[1].substring(1); 
       System.out.println(filename); 
       if(filename.compareTo("")==0){ 
        FileInputStream defult = new FileInputStream("C:\\google.html"); 
        byte byteArray[] = new byte[defult.available()]; 
        while((b = defult.read(byteArray)) != -1){ 
         //println(stream,"HTTP/1.1 200 OK"); 
         //println(stream,""); 
         stream.write(byteArray); 
        } 
       } 
       else{ 
        FileInputStream input = new FileInputStream("C:\\picture.jpg"); 
        byte byteArray[] = new byte[input.available()]; 
        while((b = input.read(byteArray)) != -1){ 
         //println(stream,"HTTP/1.1 200 OK"); 
         //println(stream,""); 
         sleep(1000); 
         stream.write(byteArray); 
         } 
       } 

streamでのFileInputStreamで、int型の変数であり、printlnはなBufferedOutputStreamの関数です。そしてrequestは、その「GET/HTTP/1.1」たとえば 、私は、ロケーションバーにhttp://localhost:8080/入力すると、Google検索のアイコンがenter image description here

+0

あなたのコードにパスをハードコードしているので、ちょっと推測してください。 –

+0

あなたがここで何を求めているかは非常に不明です。シナリオは何ですか、あなたは何をしたいですか? また、これは2016なので、 'FileInputStream'を使わないでください。代わりに 'Files.newInputStream'を使用してください。 – fge

+0

私はUniの生徒で、FileInputStreamを使用するように頼まれています...私がしたいことは、「ロケーションバーにファイルが指定されていないときにデフォルトのページを返します。たとえば、http:// localhost:8080/google.htmlを返す可能性があります。 " –

答えて

0

その文書は相対パスを持っている必要があり、問題が置き換えられますが、代わりに絶対のようなものを取得します。あなたはちょうどSave to...をクリックして言う。そのアクションを処理するブラウザの中には、ページソースコードを保存するだけでなく、すべての依存関係をダウンロードし、ドキュメントのすべてのパスをハードドライブへの絶対リンクに更新するものもあります。だから、これはあなたが望むものではありません。ソースコードを開き、Save to..アクションの代わりにgoogle.htmlにコピーするだけで、ページコードを保存してみてください。

+0

修正することはありますか? –

+0

私は間違っていました。私の答えを書き換えてください。それに従うことを試みなさい:) –

+0

それはdoesnの仕事、しかしありがとう –

関連する問題