使用Java生成XML文件时,如何能让文件自动换行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Java生成XML文件时,如何能让文件自动换行?相关的知识,希望对你有一定的参考价值。

代码如下:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource domSource = new DOMSource(doc);

doc.setXmlStandalone(true);
StreamResult result = new StreamResult(new FileOutputStream("Alarms.xml"));

try
transformer.transform(domSource, result);
catch (TransformerException e)
// TODO Auto-generated catch block
e.printStackTrace();

换行符"\\r\\n",如是用dom4j之类的jar包操作,dom4j换行如下

        /**
         * 通过 org.dom4j.io.OutputFormat 来设置XML文档输出格式
         */
        OutputFormat format = OutputFormat.createPrettyPrint(); //设置XML文档输出格式
        format.setEncoding("GB2312"); //设置XML文档的编码类型
        format.setSuppressDeclaration(true);
        format.setIndent(true); //设置是否缩进
        format.setIndent("   "); //以空格方式实现缩进
        format.setNewlines(true); //设置是否换行

参考技术A 不换行才是正确的XML格式写法,因为换行的时候,从换行处到下一行字符开始,中间的部分也算是一个节点!
如果你的xml要保存成文件,仅仅是为了看起来方便,建议用工具格式化就行!

开发环境Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | 换行 | Runtime 执行 Cmd 命令 )





Java 文件生成 Windows 系统 .bat 批处理文件并自动执行




1、生成 bat 脚本注意事项


在 Windows 中生成 bat 脚本时 , 必须输出 gb2312 编码的字符串 , 否则执行时会出现中文乱码 ;

另外还要注意 , WIndows 中的换行时 \\r\\n , 不要忽略这个问题 , 否则也会出错 ;

【错误记录】Windows 系统 bat 脚本报错 ( Java 生成 bat 脚本乱码处理 | 输出 GB2312 字符串 | Windows 中的换行时 \\r\\n )


2、Java 执行 Cmd 命令


使用 Runtime.getRuntime().exec 执行 Cmd 命令 ; 通过 BufferedReader 读取执行过程中的输出信息 ;


3、完整代码示例


import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {
        File bat = new File("cmd.bat");

        OutputStreamWriter osw =new OutputStreamWriter(
                (new FileOutputStream("cmd.bat")),"gb2312");
        osw.write("echo 生成 BAT 脚本\\r\\n");
        osw.write("echo 执行命令\\r\\n");
        osw.close();

        String ret = excuteCmdCommand("cmd.bat");
        System.out.println(ret);
    }

    /**
     * 执行 cmd 命令
     * @param cmdCommand
     * @return
     */
    public static String excuteCmdCommand(String cmdCommand)
    {
        StringBuilder stringBuilder = new StringBuilder();
        Process process = null;
        try {
            process = Runtime.getRuntime().exec(cmdCommand);
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream(), "GBK"));
            String line = null;
            while((line=bufferedReader.readLine()) != null)
            {
                stringBuilder.append(line+"\\n");
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

4、执行结果


执行上述程序 , 执行结果如下 :

以上是关于使用Java生成XML文件时,如何能让文件自动换行?的主要内容,如果未能解决你的问题,请参考以下文章

C#生成空节点XML文件,自动换行问题

开发环境Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | 换行 | Runtime 执行 Cmd 命令 )

在java中怎么能让tomcat启动完后,spring配置文件加载完后自动运行某个类?

myeclipse.hbm.xml如何自动生成

java如何根据word模板生成word文档

如何使用java让XML节点中的属性换行?如下所示!