私は、HTMLの.htmlファイルとして出力する必要があるHTMLコードのチャンクを持っています。あらかじめ書かれたhtmlコードは、ページのヘッダーとテーブルです。データを生成して同じ.htmlファイルに出力する必要があります。 prinln()を行単位で行うよりも、htmlコードを印刷する方が簡単ですか?ありがとうjava出力htmlコードをファイル
答えて
HTMLコードを解析するためにいくつかのJavaライブラリを見ることができます。クイックGoogleの検索にはいくつかの利点があります。 HTMLを読み込んだ後、それらのクエリを使用して必要に応じてDOMを操作し、それを吐き出す。例: http://jsoup.org/
OPが尋ねたものは実際にはありません... –
私はOPを誤解しましたか? ファイルや文字列などに "あらかじめ書かれた" HTMLコードが保存されています。それをHTML解析ライブラリに読み込みます。次に、規定どおりに「いくつかのデータを生成する」。必要に応じてデータを注入します。ライブラリを使用して結果を出力します。 – tskuzzy
例えば、テンプレートエンジンMVEL2またはFreeMarkerを使用してみてください。どちらもWebフレームワーク外のスタンドアロンアプリケーションで使用できます。あなたは前もって時間を失いますが、長期的には時間を節約します。
JSP(Java Server Pages)では、いくつかのJavaコードが簡単に埋め込まれたHTMLファイルを記述できます。たとえば、
<html><head><title>Hi!</title></head><body>
<% some java code here that outputs some stuff %>
</body></html>
エンタープライズJavaサーバーがインストールされている必要があります。しかし、これがWebサーバー上にある場合、それは持っていることは不合理ではないかもしれません。
通常のJavaで実行したい場合は、それが必要です。私はあなたがあなたが行ごとに出力することを意味する部分を完全に理解していません。
System.out.println("<html>");
System.out.println("<head><title>Hi!</title></head>");
System.out.println("<body>");
// etc
このようなことをすることを意味しましたか?それがあなたが意味するものなら、それをしないでください。テンプレートファイルからデータを読み込むだけで、すべてのデータを一度に出力できます。それを複数行のテキスト文字列に読み込んで、テンプレートからデータを読み込み、新しいファイルに直接出力することができます。何かのように
while((strInput = templateFileReader.readLine()) != null)
newFileOutput.println(strInput);
また、私はあなたがその部分の意味を正確には分かりません。
あなたの2番目の提案は、HTMLコードがプログラムにハードコードされていることを除いて、私が意図したものです。私がする必要があるのは、ハードコードされたHTML(ヘッダー)を出力し、コマンドライン入力に基づいて残りのページを生成することです。私が書いているのは実際にはjavasプログラムです。混乱して申し訳ありません – Lehan
プログラムにハードコードされていると言えば、それはStringや何かに格納されていると仮定しています。だから、あなたは 'newFileOutput.println(header);'を実行してから、ページの残りの部分を出力することができませんでしたか? – tskuzzy
それは私が現在やっていることですが、それだけではすべての行を入力するのが本当に遅いです...もっと速い方法があるのだろうかと思っています – Lehan
HTMLは単にテキストをマークする方法なので、HTMLファイルを書き込むには、HTMLを.html拡張子のファイルにテキストとして書き込むだけです。
ディレクトリからファイルのリストを取得するだけでなく、ファイルの読み書きにも役立つチュートリアルがたくさんあります。 (Googleの「Javaの読み込みファイル」、「Javaの書き込みファイル」、「Javaのリストディレクトリ」 - これは基本的に必要なものすべてです)重要なのは、テキストをファイルにプルしてプッシュするためにBufferedReader/BufferedWriterを使用し、 HTMLをファイルに書き込む際に特別なコードサイエンスは必要ないということです。
私は繰り返し述べます。 HTMLは<b>text with tags</b>
以上です。
2つのファイルを1つのファイルに出力し、<html></html>
タグでそれらをラップする、非常に粗末な例です。
BufferedReader getReaderForFile(filename) {
FileInputStream in = new FileInputStream(filename);
return new BufferedReader(new InputStreamReader(in));
}
public void main(String[] args) {
// Open a file
BufferedReader myheader = getReaderForFile("myheader.txt");
BufferedReader contents = getReaderForFile("contentfile.txt");
FileWriter fstream = new FileWriter("mypage.html");
BufferedWriter out = new BufferedWriter(fstream);
out.write("<html>");
out.newLine();
for (String line = myheader.readLine(); line!=null; line = myheader.readLine()) {
out.write(line);
out.newLine(); // readLine() strips 'carriage return' characters
}
for (String line = contents.readLine(); line!=null; line = contents.readLine()) {
out.write(line);
out.newLine(); // readLine() strips 'carriage return' characters
}
out.write("</html>");
}
単純なHTMLテキストファイルを作成するには、入力ファイルを1行ずつ読み込む必要はありません。
File theFile = new File("file.html");
byte[] content = new byte[(int) theFile.length()];
あなたは完全にバイト配列としてファイルを読むために "
RandomAccessFile.readFully" を使用することができます
:テキストコンテンツにあなたの変更を行います
// Read file function:
RandomAccessFile file = null;
try {
file = new RandomAccessFile(theFile, "r");
file.readFully(content);
} finally {
if(file != null) {
file.close();
}
}
:
String text = new String(content);
text = text.replace("<!-- placeholder -->", "generated data");
content = text.getBytes();
書き込みも簡単です。
// Write file content:
RandomAccessFile file = null;
try {
file = new RandomAccessFile(theFile, "rw");
file.write(content);
} finally {
if(file != null) {
file.close();
}
}
- 1. java:出力ファイル
- 2. 出力HTMLコードthats transperant
- 3. jadeがhtmlファイルの1行にコードを出力する理由
- 4. HTMLファイルをJavaのプリンタに出力する
- 5. ファイルへのJava ASCII出力
- 6. "git describe"の出力をJavaコード
- 7. Angularjs - HTMLコードのDOMエレメント出力
- 8. pythonの出力をhtmlファイルに出力する
- 9. HTMLファイルを出力ストリームにロードする
- 10. Javaコードの出力がWSO2ログに出力されない
- 11. インデント付きJava出力書式コード:
- 12. Java出力コンソールのエラーメッセージをファイルに出力しますか?
- 13. 出力ファイルをJavaで作成する
- 14. Java Processbuilderをファイルに出力するGitLog
- 15. Java:出力ファイルでゼロを得る
- 16. Azure関数PowerShell出力HTMLファイル
- 17. ブックダウン:単一のhtml出力ファイル
- 18. Eclipse XSLT出力HTMLファイル形式
- 19. HTMLコードとJavaコードのリンク
- 20. CodeIgniterのecho文の出力としてhtmlコードを出力したい
- 21. Javaの出力をHTMLファイルに直接取り込む方法は?
- 22. 抽出htmlコード
- 23. TAP :: Formatter :: HTML - 生成されたHTMLの出力をファイルにリダイレクト
- 24. JSP Javaコード+ htmlテーブル
- 25. Java 6ファイル入力出力ストリーム(同じファイル)
- 26. ファイルに出力されないjava
- 27. UIWebviewでHTMLコードを入力
- 28. HTMLファイルからCodenameone javaファイルを呼び出す方法は?
- 29. phpを使ってこのhtmlコードを出力するには?
- 30. PHPコード出力
「hのチャンクtml "は今?それはファイルですか?その場合は、ファイルを開いてstdoutにコピーするだけです。 http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html#copy(java.io.InputStream,%20java.io.OutputStream) –
を参照してくださいその出力は同じhtmlファイルに保存されます...それはあなたが消費する基本HTMLファイルを生成する別のソースを持っているということですか? – helios
htmlのチャンクは実際には出力HTMLファイルのヘッダーであり、残りのファイルは別のソースファイル(プレーンテキスト)から生成されます。 私がする必要があるのは、ファイルのディレクトリをhtmlに変換することです。それぞれは、同じヘッダーを持ちます。だから私はファイルにhtmlコードの束を印刷する方法を知りたいのです – Lehan