Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换另一个文件中某个文件的占位符_Java_Python_Regex - Fatal编程技术网

Java 替换另一个文件中某个文件的占位符

Java 替换另一个文件中某个文件的占位符,java,python,regex,Java,Python,Regex,我正在尝试创建一个实用程序,它将: 从文件系统上放置的.plh文件中提取占位符 通过分隔的键值对创建哈希映射 在整个文件中替换“密钥自”值 在文件系统上写入输出文件 我能够使用Python和Java创建哈希映射。我不知道字符串替换部分应该采用什么方法。这两种语言中是否都有类似于sed-i[regex]的东西 下面是我编写的代码: public class PlaceHolderReplace { public static void main(String[] args)

我正在尝试创建一个实用程序,它将:

  • 从文件系统上放置的
    .plh
    文件中提取占位符

  • 通过分隔的键值对创建哈希映射

  • 在整个文件中替换“密钥自”值

  • 在文件系统上写入输出文件

  • 我能够使用Python和Java创建哈希映射。我不知道字符串替换部分应该采用什么方法。这两种语言中是否都有类似于sed-i[regex]的东西

    下面是我编写的代码:

    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是出于安全原因。