Java 文本文件的读写操作

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文件
			// 創建讀文件流
			InputStreamReader reader = new InputStreamReader(new FileInputStream(fileIn));
			BufferedReader bufferedReader = new BufferedReader(reader);

			// 創建輸出文件
			File fileOut = new File(strOutList);
			fileOut.createNewFile();
			// 創建文件寫對象
			BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileOut));

			// 創建行緩衝
			String strLineTextBuffer = null;
			// 遍歷所有行
			{
				// 以行的形式讀取存入 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




你可能感兴趣的:(java,文件,bufferedreader,读写)