【问题标题】:Remove whitespaces from XML file read from a zip file从 zip 文件中读取的 XML 文件中删除空格
【发布时间】:2015-07-17 09:16:57
【问题描述】:

我正在读取存储在 zip 文件中的 XML 文件。我需要删除空格,但我似乎没有任何效果。这就是我所拥有的,但 trim() 没有做任何事情。

        for (Enumeration e = zip.entries(); e.hasMoreElements(); ) {

            ZipEntry entry = (ZipEntry) e.nextElement();
            InputStream inputStream = zip.getInputStream(entry);
            InputStreamReader inputStreamReader = InputStreamReader(inputStream);  
            char[] buffer = new char[1024];
            while (inputStreamReader.read(buffer, 0, buffer.length) != -1) {

                String str = new String(buffer);

                System.out.println(str.trim());
       }

【问题讨论】:

    标签: java xml inputstream whitespace zipinputstream


    【解决方案1】:

    trim() 将删除任何前导或尾随空格,但我认为您不能将 trim 命令与 System.out.println 结合使用。这会捕获修剪命令的结果吗?

    您是否尝试过以下方法?

    String result = str.trim();
    System.out.println(result);
    

    如果这不起作用,那么使用 replaceAll() 怎么样?

    String result = str.replaceAll(" ","");
    System.out.println(result);
    

    或者,如果它不是一个简单的空格字符,试试这样的方法来删除多个空格?

    String result = str.replaceAll("\\s+","");
    System.out.println(result);
    

    【讨论】:

    • 谢谢。第三个选项完成了这项工作。
    • 很高兴听到这个消息。感谢您对我在 StackOverflow 上的第一篇帖子进行了第一次投票。
    【解决方案2】:

    这应该可以解决您的问题。 打开 zip --> 读取文件 --> 修剪文件。

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    
    /**
     *
     * @author comrench
     */
    public class XMLTrim {
        ZipEntry zipEntry;
        Enumeration enumEntries;
        BufferedReader bufferedReader;
        InputStreamReader inputStreamReader;
        ZipFile zip;
        private String line=null;
        public static void main(String[] args){
            XMLTrim xmlTrim= new XMLTrim();
            xmlTrim.trim();
        }
    
        public void trim(){
            try {            
                Path tempPath=Paths.get("D:\\share\\tmp.zip");
                zip = new ZipFile(tempPath.toFile());
                Enumeration enumEntries= zip.entries();
                while(enumEntries.hasMoreElements()){
                    zipEntry = (ZipEntry) enumEntries.nextElement();
                    readFileContent();
                }
            } catch (IOException ex) {
                System.out.println("exception ex"+ex);
            }
        }
    
        private void readFileContent() {
            try {
                inputStreamReader = new InputStreamReader(zip.getInputStream(zipEntry));
                bufferedReader=new BufferedReader(inputStreamReader);  
                while ((line = bufferedReader.readLine()) != null) {
                    System.out.println(line.trim());
                }
            } catch (IOException e) {
                System.out.println("Exception "+e);
            }            
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-04
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多