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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© love~陌 中级黑马   /  2014-3-21 19:17  /  950 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.*;
  2. public class FileStream
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 FileOutputStream out=new FileOutputStream("hello.txt");
  7.                 out.write("www.it315.org".getBytes());
  8.                 out.close();//若是注释掉这一行,并不会影响程序运行的结果
  9.                
  10.                 byte[] buf=new byte[1024];
  11.                 File f=new File("hello.txt");
  12.                 FileInputStream in= new FileInputStream(f);
  13.                 int len=in.read(buf);
  14.                 sop(new String(buf,0,len));
  15.         }
  16.         public static void sop(Object obj)
  17.         {
  18.                 System.out.println(obj);
  19.         }
  20. }


  21. import java.io.*;
  22. class  FileStream2
  23. {
  24.         public static void main(String[] args) throws Exception
  25.         {
  26.                 FileWriter out=new FileWriter("hello2.txt");
  27.                 out.write("www.it315.org");
  28.                 out.close();//若是注释掉这一行,则会发生角标越界异常

  29.                 char[] buf=new char[1024];
  30.                 FileReader in=new FileReader("hello2.txt");
  31.                 int len=in.read(buf);
  32.                 sop(new String(buf,0,len));

  33.         }
  34.         public static void sop(Object obj)
  35.         {
  36.                 System.out.println(obj);
  37.         }
  38. }

  39. 求详细解释:FileOutputStream与FileWriter类中write方法的具体区别。
复制代码


评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

1 个回复

倒序浏览
本帖最后由 菜小徐 于 2014-3-21 20:30 编辑

FileOutputStream是以字节输入
FileWriter是以字符输出
write方法只是写出的一个方法。
  1. import java.io.*;
  2. public class TestStream {
  3. public static void main(String[] args) throws Exception {
  4.   
  5.   String str="你好hello"; //用于写入文件的字符串
  6.   byte[] b1=str.getBytes(); //将字符串内容装入字节数组
  7.   byte[] b2=new byte[1024];
  8.   char[] c1=str.toCharArray();//将字符串内容装入字符数组
  9.   char[] c2=new char[1024];
  10.   
  11.   FileOutputStream fsOut=new FileOutputStream("ByteTxt.txt"); //按字节写入ByteTxt.txt
  12.   FileWriter fwOut=new FileWriter("CharTxt.txt");  //按字符写入CharTxt.txt
  13.   fsOut.write(b1);
  14.   fsOut.close();
  15.   fwOut.write(c1);
  16.   fwOut.close();
  17.   
  18.   System.out.println("读取ByteTxt.txt:");
  19.   FileInputStream fsIn1=new FileInputStream("ByteTxt.txt");
  20.   FileReader frIn1= new FileReader("ByteTxt.txt");
  21.   
  22.   System.out.print("按字节读取:");
  23.   int len=fsIn1.read(b2); //将读入的内容全部存入字节数组中
  24.   for(int i=0;i<len;i++){
  25.    System.out.print(b2[i]+",");//b2[i]中存放的是字节码,需将其转换为字符格式
  26.   }
  27.   System.out.println();
  28.   System.out.println(new String(b2,0,len)); //将读取的所有字节转换为String
  29.   
  30.   System.out.print("按字符读取:");
  31.   len=frIn1.read(c2);   //将读入的内容全部存入字符数组中
  32.   for(int i=0;i<len;i++){
  33.    System.out.print(c2[i]+",");
  34.   }
  35.   System.out.println();
  36.   System.out.println(new String(c2,0,len));
  37.   System.out.println(new String(c2,0,2));
  38.   
  39.   System.out.println("读取CharTxt.txt:");
  40.   FileInputStream fsIn2=new FileInputStream("CharTxt.txt");
  41.   FileReader frIn2= new FileReader("CharTxt.txt");
  42.   
  43.   System.out.print("按字节读取:");
  44.   len=fsIn2.read(b2);
  45.   for(int i=0;i<len;i++){
  46.    System.out.print(b2[i]+",");//b2[i]中存放的是字节码,需将其转换为字符格式
  47.   }
  48.   System.out.println();
  49.   System.out.println(new String(b2,0,len));//将读取的所有字符转换为String
  50.   
  51.   System.out.print("按字符读取:");
  52.   len=frIn2.read(c2);
  53.   for(int i=0;i<len;i++){
  54.    System.out.print(c2[i]+",");
  55.   }
  56.   System.out.println();
  57.   System.out.println(new String(c2,0,len));
  58. }
  59. }
  60. 输出结果为;
  61. 读取ByteTxt.txt:
  62. 按字节读取:?, ̄,?,?,h,e,l,l,o,
  63. 你好hello
  64. 按字符读取:你,好,h,e,l,l,o,
  65. 你好hello
  66. 你好
  67. 读取CharTxt.txt:
  68. 按字节读取:?, ̄,?,?,h,e,l,l,o,
  69. 你好hello
  70. 按字符读取:你,好,h,e,l,l,o,
  71. 你好hello
复制代码



评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马