Java 替换另一个文件中某个文件的占位符
我正在尝试创建一个实用程序,它将:Java 替换另一个文件中某个文件的占位符,java,python,regex,Java,Python,Regex,我正在尝试创建一个实用程序,它将: 从文件系统上放置的.plh文件中提取占位符 通过分隔的键值对创建哈希映射 在整个文件中替换“密钥自”值 在文件系统上写入输出文件 我能够使用Python和Java创建哈希映射。我不知道字符串替换部分应该采用什么方法。这两种语言中是否都有类似于sed-i[regex]的东西 下面是我编写的代码: public class PlaceHolderReplace { public static void main(String[] args)
.plh
文件中提取占位符public class PlaceHolderReplace
{
public static void main(String[] args)
{
Map<String,String> map= new HashMap<String,String>();
Properties prop = new Properties();
InputStream input = null;
InputStream msg= null;
String msgString= null;
try
{
input = new FileInputStream("placeholders.plh");
msg= new FileInputStream("test.xml");
prop.load(input);
Enumeration e = prop.propertyNames();
while(e.hasMoreElements())
{
String key = (String)e.nextElement();
map.put(key,prop.getProperty(key));
}
for(String key:map.keySet())
{
//System.out.println("Key ="+key+", value ="+map.get(key));
}
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if(input != null)
{
try
{
input.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
}
}
公共类占位符替换
{
公共静态void main(字符串[]args)
{
Map Map=newhashmap();
Properties prop=新属性();
InputStream输入=null;
InputStream msg=null;
字符串msgString=null;
尝试
{
输入=新文件输入流(“placeholders.plh”);
msg=新文件输入流(“test.xml”);
道具载荷(输入);
枚举e=prop.propertyNames();
而(e.hasMoreElements())
{
字符串键=(字符串)e.nextElement();
map.put(key,prop.getProperty(key));
}
for(字符串键:map.keySet())
{
//System.out.println(“Key=“+Key+”,value=“+map.get(Key));
}
}
捕获(IOE异常)
{
e、 printStackTrace();
}
最后
{
如果(输入!=null)
{
尝试
{
input.close();
}
捕获(IOE异常)
{
e、 printStackTrace();
}
}
}
}
}
为什么您要自己实现这个,而不是使用一些现有的模板引擎?我必须让它在我的work-PC上运行。除非我们的主管批准,否则我们不允许下载第三方JAR,这需要很长时间。等待。因此,你的雇主实际上禁止你遵循良好的做法?语言是强制性的还是问题:我如何才能在java、python、[其他?]的可用性下实现模板系统?很抱歉回复太晚@o11c是出于安全原因。