@@ -0,0 +1,1249 @@
+package com.decker.essentiallib.IO;%0D%0A%0D%0Aimport java.io.FileNotFoundException;%0D%0Aimport java.io.IOException;%0D%0Aimport java.io.InputStream;%0D%0Aimport java.util.regex.Matcher;%0D%0Aimport java.util.regex.Pattern;%0D%0A%0D%0Aimport javax.sound.sampled.AudioFormat.Encoding;%0D%0A%0D%0Aimport org.omg.CORBA.SystemException;%0D%0A%0D%0Apublic class StaticFileReader%0D%0A%7B%0D%0A    private String pluginName;%0D%0A    private Pattern urlPattern;%0D%0A%0D%0A    public StaticFileReader(String pluginName)%0D%0A    %7B%0D%0A%09this.pluginName = pluginName;%0D%0A%09this.urlPattern = Pattern.compile(String.format(%22(?%3C=%25s/).*%22, this.getPluginName()));%0D%0A    %7D%0D%0A%0D%0A    public String getPluginName()%0D%0A    %7B%0D%0A%09return this.pluginName;%0D%0A    %7D%0D%0A%0D%0A    public byte%5B%5D readBytes(String url) throws FileNotFoundException,IOException%0D%0A    %7B%0D%0A%09Matcher matcher=urlPattern.matcher(url);%0D%0A%09if(!matcher.find())%0D%0A%09%7B%0D%0A%09    throw new FileNotFoundException(%22Cant find file by this url%22);%0D%0A%09%7D%0D%0A%09String filePath=matcher.group(0);%0D%0A%09InputStream is = this.getClass().getResourceAsStream(String.format(%22/%25s/%25s%22,this.getPluginName(), filePath));%0D%0A%09return sun.misc.IOUtils.readFully(is, -1, true);%0D%0A%09%0D%0A    %7D%0D%0A%0D%0A    public String readString(String url) throws FileNotFoundException,IOException%0D%0A    %7B%0D%0A%09return new String (this.readBytes(url));%0D%0A%09%0D%0A    %7D%0D%0A%0D%0A%7D%0D%0A

Add file reader.