使用Java读取一个css文件的内容
我正在尝试读取一个css文件,找出css类和它们的定义,然后用它的类名和描述将它保存在一个csv文件中。 使用Java,下面我有css文件common.css。
/* CSS Document */
.Page
{
background-color: #F4EEE0;
background-image: none;
margin: 0px 0px 0px 0px;
scrollbar-face-color: #DEAC64;
scrollbar-highlight-color: #FFFFFF;
scrollbar-shadow-color: #805822;
scrollbar-3dlight-color: #B47F36;
scrollbar-arrow-color: #805822;
scrollbar-darkshadow-color: #7188AA;
scrollbar-base-color: #F4EEE0;
scrollbar-track-color: #E8C490;
}
a.PageLinkTrail
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
font-weight: bold;
color: #805822;
text-decoration:none;
}
a.PageLinkTrail:hover
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
font-weight: bold;
color: #805822;
text-decoration:underline;
}
.IconSpacing a:hover
{
padding: 3px 3px 3px 3px;
text-align:center;
width:15px;
height:15px;
border-top: 1px solid #FFFFFF;
border-right: 1px solid #C99349;
border-bottom: 1px solid #C99349;
border-left: 1px solid #FFFFFF;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
font-weight: normal;
color: #333333;
text-decoration:normal;
vertical-align:Top;
white-space:nowrap;
cursor:hand;
}
我想要课程名称
.Page
a.PageLinkTrail
a.PageLinkTrail:hover
这是它的定义。
{
background-color: #F4EEE0;
background-image: none;
margin: 0px 0px 0px 0px;
scrollbar-face-color: #DEAC64;
scrollbar-highlight-color: #FFFFFF;
scrollbar-shadow-color: #805822;
scrollbar-3dlight-color: #B47F36;
scrollbar-arrow-color: #805822;
scrollbar-darkshadow-color: #7188AA;
scrollbar-base-color: #F4EEE0;
scrollbar-track-color: #E8C490;
}
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
font-weight: bold;
color: #805822;
text-decoration:none;
}
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
font-weight: bold;
color: #805822;
text-decoration:underline;
}
我想将它保存在csv文件中。 我应该如何使用Java来获取名称和定义等CSS内容? 这是我目前遇到麻烦最多的解决方案的一部分。 我写了一个流动的代码
package com.tufan.digite.Count;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GetAllCssFiles {
public static void main(String args[]) throws IOException {
try {
FileInputStream fstream = new FileInputStream("D:/digite/work/digite/WEBUI/common/theme1/common.css");
DataInputStream dis = new DataInputStream(fstream);
FileChannel fc = fstream.getChannel();
ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0,(int) fc.size());
Charset cs = Charset.forName("8859_1");
CharsetDecoder cd = cs.newDecoder();
CharBuffer cb = cd.decode(bb);
String strLine;
String content = ".MainNav a:hover{ float:left; width:70px; height:65px; border-top: 2px Solid #F4E6CC; border-bottom: 2px Solid #805822; border-left: 2px Solid #F4E6CC; border-right: 2px Solid #805822; margin: 0px 0px 0px 0px; align:center; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #FFFFFF; text-decoration: none; text-align: center; background:#C99349; background-image: url(../../images/hor_nav_bg.gif); background-repeat: repeat-X; padding:4px; clear:left; }";
Pattern p = Pattern.compile("([a-zA-Z_0-9 | -|:|;|nt]*)({[nt]*[a-zA-Z_0-9 | -|:|;|nt]*})");
Matcher matcher = p.matcher(cb);
while (matcher.find()) {
String selector = matcher.group(1);
String definition = matcher.group(2);
System.out.println("selector:" + selector + "Definition"
+ definition);
}
} catch (Exception e) {
e.printStackTrace();
} }}
它不会给我团体价值。 如果我将内容传递给匹配器,它会给我一个答案:“.MainNav a:hover”在第一组中,{float:left; 宽度:70像素; 高度:65px; border-top:2px Solid#F4E6CC; border-bottom:2px Solid#805822; border-left:2px Solid#F4E6CC; border-right:2px Solid#805822; margin:0px 0px 0px 0px; 居中对齐; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:10px; font-weight:bold; 颜色:#FFFFFF; 文字修饰:无; text-align:center; 背景:#C99349; background-image:url(../../ images / hor_nav_bg.gif); background-repeat:repeat-X; 填充:4像素; 明确:左; }定义为group2
但该内容是硬编码。 我正在尝试cb cb内容整个css文件内容。
找到第一个开口大括号的位置,找到第一个大括号的位置,从开始到开始的大括号获取文本,从开始大括号到关闭大括号获取文本,在关闭大括号之后用文本重复,直到没有剩下文本。
链接地址: http://www.djcxy.com/p/87565.html