Java 利用 IO 類操作文本檔案,讀取檔案内檔案名清單,根據檔案名清單輸出 CSS 格式檔案
/**
* 讀取文本檔案,list.txt 每一行的 filename.png 檔案名轉換為如下形式
*
* .icon-filename{
* background:url('icons/filename.png') no-repeat center center;
* }
*
* 建構 jeasyui 的擴充 css 檔案
*
*/
package control;
import java.io.File;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;
public class iconsEx
{
public static void main(String[] args)
{
final String strExName = ".png";
// 來源檔案(檔案名清單)
String strInList = "D:/list.txt";
// 輸出檔案(css 檔案)
String strOutList = "D:/iconEx.css";
String strURL = "iconsEx";
String strIconGroup = "ex";
// build
BuildCss(strInList, strOutList, strExName, strURL, strIconGroup);
}
/**
*
* @return
*/
public static Integer BuildCss(final String strInList, final String strOutList, final String strExName, final String strURL,
final String strIconGroup)
{
int count = 0;
Integer result = null;
try
{
// 打開文本檔案
File fileIn = new File(strInList); // 要讀取以上路徑的input。txt檔案
// 創建讀檔案流, and set charset
InputStreamReader reader = new InputStreamReader(new FileInputStream(fileIn), "utf-8");
BufferedReader bufferedReader = new BufferedReader(reader);
// 創建輸出檔案
File fileOut = new File(strOutList);
fileOut.createNewFile();
// 創建檔案寫對象
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileOut));
// 創建行緩衝
String strLineTextBuffer = null;
// 遍歷所有行
do {
// 以行的形式讀取存入 string
strLineTextBuffer = bufferedReader.readLine();
// 找到 .png 開始的位置
int point = strLineTextBuffer.indexOf(strExName);
// 如果知道 .png
if (point > 0)
{
final String strFullFilename = strLineTextBuffer;
// 拆分得到檔案名
final String strFilename = strFullFilename.substring(0, point);
// 構造新的文本内容
String strTheCSS = String.format(".icon-%s-%s{\n background:url('%s/%s') no-repeat center center;\n}\n", strIconGroup,
strFilename, strURL, strFullFilename);
// 新文本寫入緩衝
bufferedWriter.write(strTheCSS);
// 調試計數器
count++;
}
}
while (strLineTextBuffer != null && strLineTextBuffer.equals("") == false);
System.out.println("共計建構 " + count);
// 把緩存區内容壓入檔案
bufferedWriter.flush();
// 關閉檔案
bufferedReader.close();
bufferedWriter.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return result;
}
}
來源檔案:
輸出檔案
Q群讨論:236201801