A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘泰 中级黑马   /  2012-4-4 22:12  /  5109 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Number
{
        public static void main(String[] args)
        {
          FileWriter fw = null;
        try {
                fw = new FileWriter("D://text.txt",true);
                  fw.write("dgldkfjgljjjjj");
                  fw.write("\r\n");
                  fw.write("11111");
                  fw.flush();
        } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println(e.toString());
        }finally{
                try {
                        if(fw!=null)
                        fw.close();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }               
        }
}
写入时,在原文件的结尾写入,初始化对象的时候加入一个参数true。如fw = new FileWriter("D://text.txt",true);
文件的写入的时候,要求换行,用.writer("\t\n");为什么用writer("\n”)不行?

5 个回复

倒序浏览
\n是 Linux上的换行,Windows只认\r\n
回复 使用道具 举报
/t/n 是windows系统是换行
/n只有在Linux系统中是换行
这个在毕老师视频上有讲
回复 使用道具 举报
程旦 来自手机 中级黑马 2012-4-4 23:57:28
板凳
楼主看视频不认真,老毕特意讲了这块。。。就是linux和windows的话 的问题
回复 使用道具 举报
本帖最后由 格式化 于 2012-4-5 02:41 编辑

  每个操作系统的的换行符都不一样,\n是 Linux上的换行,Windows只认\r\n 所以应该动态获取
public class FileWriterDemo2 {

        /**
         * @param args
         * @throws IOException
         */
        public static final String LINESEPARATOR = System.getProperty("line.separator");//获取不同系统中的换行符"       
                public static void main(String[] args) {

                /*
                 * 想要完成对已有文件的续写。只要在构造函数中多加一个boolean类型的参数true即可。
                 */
               
                FileWriter fw = null;//在try外面创建流对象的引用,是可以让可以该引用作用范围变大。finally中可用。
                try {
                        fw = new FileWriter("demo.txt",true);//在try中对流对象进行初始化。以方便捕获异常。
                        fw.write("xixii"+LINESEPARATOR+"heihei");
                } catch (IOException e) {
                        System.out.println(e.toString()+".......");
                       
                }finally{
                        if(fw!=null)//如果流对象创建失败,关闭是无效,所以加入了健壮性判断。
                                try {
                                        fw.close();//关闭资源一定要定义finally中,因为资源关闭动作一定要执行。
                                } catch (IOException e) {
                                       
                                        e.printStackTrace();
                                }
                       
                }
               
        }
回复 使用道具 举报
windows用\r\n两个字符代表换行的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马