博客> java_字符流
java_字符流
2017-12-15 02:00 评论:0 阅读:250 西单_夜未央
ios cell与cell之间间隙

字符流注意

  • 字符输出流操作步骤:
  • A:创建字符输出流对象
  • B:调用对象的写入数据方法,并刷新缓冲区
  • C:释放资源
  • 问题1:为什么FileWriter没有无参构造方法?
  • 因为写数据的时候,一定要明确写道哪里去。
  • 问题2:flush()和close()的区别?
  • flush():只刷新缓冲区,流对象还可以继续使用。
  • close():先刷新缓冲区,在关闭流对象。流对象不可以继续被使用。

  • 3:为什么连续两次没有换号呢?如果想换行,怎么办呢?
  • 因为你没有让他换行,所以没有换号。
  • 那就给出换行符不就可以了吗。\n
  • 不同的操作系统,对换行符的要求不一样:
  • windows:\r\n
  • linux:\n
  • mac:\r

字符流写入标准形式:

  FileWriter fw = null;
  try {
   fw = new FileWriter("avb.text", true);
   fw.write("abs.er");
   fw.write("aer");
  } catch (IOException e) {
   // TODO 自动生成的 catch 块
   e.printStackTrace();
  }finally {
   if (fw != null) {
    try {
     fw.close();
    } catch (IOException e) {
     // TODO 自动生成的 catch 块
     e.printStackTrace();
    }
   }
  }

写入流

FileReader fr = null;
  try {

   fr = new FileReader("src\\com\\lm2\\FileReaderDemo.java");

// 一次读取一个
//   int result = 0;
//   while ((result = fr.read())!=-1) {
//    System.out.print((char) result);
//   }

 //* 一次读取一个字符数组
// *   public int read(char[] cbuf)
// *   每次读取数据,把数据存储到字符数组中,返回值是实际读取长度。
   char[] ch = new char[1024];
   int a = 0;
   while ((a = fr.read(ch)) != -1) {
    System.out.print(new String(ch, 0, a));
   }

  } catch (IOException e) {
   // TODO 自动生成的 catch 块
   e.printStackTrace();
  }finally {
   if (fr != null) {
    try {
     fr.close();
    } catch (IOException e) {
     // TODO 自动生成的 catch 块
     e.printStackTrace();
    }
   }
  }
 }

复制拷贝Demo

  FileReader fr = new FileReader("src\\com\\lm2\\FileReaderDemo.java");

  FileWriter fw = new FileWriter("abd.java",true);

  char[] ch = new char[1024];
  int a = 0;
  while ((a=fr.read(ch))!=-1) {
       fw.write(ch,0,a);;
  }
      fw.close();
      fr.close();
 }
收藏
0
sina weixin mail 回到顶部