java 什么方法可以把txt文件转化为html文件

java 什么方法可以把txt文件转化为html文件,第1张

参考如下例子,就可以轻松将txt文件转化为html文件:

private static String txtToHtml(String s) {

StringBuilder builder = new StringBuilder()

boolean previousWasASpace = false

for (char c : s.toCharArray()) {

if (c == ' ') {

if (previousWasASpace) {

builder.append(" ")

previousWasASpace = false

continue

}

previousWasASpace = true

} else {

previousWasASpace = false

}

switch (c) {

case '<':

builder.append("<")

break

case '>':

builder.append(">")

break

case '&':

builder.append("&")

break

case '"':

builder.append(""")

break

case '\n':

builder.append("<br>")

break

// We need Tab support here, because we print StackTraces as HTML

case '\t':

builder.append(" ")

break

default:

builder.append(c)

}

}

String converted = builder.toString()

String str = "(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{}:\'\".,<>?«»“”‘’]))"

Pattern patt = Pattern.compile(str)

Matcher matcher = patt.matcher(converted)

converted = matcher.replaceAll("<a href=\"$1\">$1</a>")

return converted

}

import javax.swing.*

import java.awt.*

import java.awt.event.*

public class HtmlDemo extends JPanel

implements ActionListener {

JLabel theLabel

JTextArea htmlTextArea

public HtmlDemo() {

setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS))

String initialText = "<html>\n" +

"Color and font test:\n" +

"<ul>\n" +

"<li><font color=red>red</font>\n" +

"<li><font color=blue>blue</font>\n" +

"<li><font color=green>green</font>\n" +

"<li><font size=-2>small</font>\n" +

"<li><font size=+2>large</font>\n" +

"<li><i>italic</i>\n" +

"<li><b>bold</b>\n" +

"</ul>\n"

htmlTextArea = new JTextArea(10, 20)

htmlTextArea.setText(initialText)

JScrollPane scrollPane = new JScrollPane(htmlTextArea)

JButton changeTheLabel = new JButton("Change the label")

changeTheLabel.setMnemonic(KeyEvent.VK_C)

changeTheLabel.setAlignmentX(Component.CENTER_ALIGNMENT)

changeTheLabel.addActionListener(this)

theLabel = new JLabel(initialText) {

public Dimension getPreferredSize() {

return new Dimension(200, 200)

}

public Dimension getMinimumSize() {

return new Dimension(200, 200)

}

public Dimension getMaximumSize() {

return new Dimension(200, 200)

}

}

theLabel.setVerticalAlignment(SwingConstants.CENTER)

theLabel.setHorizontalAlignment(SwingConstants.CENTER)

JPanel leftPanel = new JPanel()

leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.PAGE_AXIS))

leftPanel.setBorder(BorderFactory.createCompoundBorder(

BorderFactory.createTitledBorder(

"Edit the HTML, then click the button"),

BorderFactory.createEmptyBorder(10,10,10,10)))

leftPanel.add(scrollPane)

leftPanel.add(Box.createRigidArea(new Dimension(0,10)))

leftPanel.add(changeTheLabel)

JPanel rightPanel = new JPanel()

rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.PAGE_AXIS))

rightPanel.setBorder(BorderFactory.createCompoundBorder(

BorderFactory.createTitledBorder("A label with HTML"),

BorderFactory.createEmptyBorder(10,10,10,10)))

rightPanel.add(theLabel)

setBorder(BorderFactory.createEmptyBorder(10,10,10,10))

add(leftPanel)

add(Box.createRigidArea(new Dimension(10,0)))

add(rightPanel)

}

//React to the user pushing the Change button.

public void actionPerformed(ActionEvent e) {

theLabel.setText(htmlTextArea.getText())

}

/**

* Create the GUI and show it. For thread safety,

* this method should be invoked from the

* event dispatch thread.

*/

private static void createAndShowGUI() {

//Create and set up the window.

JFrame frame = new JFrame("HtmlDemo")

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

//Add content to the window.

frame.add(new HtmlDemo())

//Display the window.

frame.pack()

frame.setVisible(true)

}

public static void main(String[] args) {

//Schedule a job for the event dispatch thread:

//creating and showing this application's GUI.

SwingUtilities.invokeLater(new Runnable() {

public void run() {

//Turn off metal's use of bold fonts

UIManager.put("swing.boldMetal", Boolean.FALSE)

createAndShowGUI()

}

})

}

}

java的demo,你看看把,没明白你要的是什么东西。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6099779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存