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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 霍振鹏 中级黑马   /  2014-3-26 14:12  /  1121 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 霍振鹏 于 2014-3-26 22:20 编辑

谁能给我解释一下,Write方法与Print方法的主要区别,不要从API文档粘过来的解释,,按自己理解来,API文档中说的Print(char【】)是打印字符数组,,这是什么意思?
  1. import java.io.FileNotFoundException;
  2. import java.io.OutputStream;
  3. import java.io.PrintStream;0


  4. public class PrintSteamDemo {

  5.         /**
  6.          * @param args
  7.          * @throws FileNotFoundException
  8.          */
  9.         public static void main(String[] args) throws Exception {
  10.                 // TODO Auto-generated method stub
  11.                 PrintStream os=new PrintStream("c.txt");
  12.                 String str="Hello,";
  13.                 /*os.write(str.getBytes());
  14.                 os.close();
  15.                 */
  16.                 os.print(str.getBytes());
  17.                 os.close();
  18.                
  19.                

  20.         }

  21. }
复制代码

评分

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

查看全部评分

7 个回复

倒序浏览
write字节流是写入操作,目的设备可以是内存、硬盘、控制台
print应该是单纯在控制台输出。
回复 使用道具 举报
printStream是标准打印流,打印的目标一般是控制台,printStream是Stream的子类所以他也有Write()方法,当然也有自身的print()方法,但是打印结果一样都是控制台,但是你可以自己手动指定打印的目标,可以改到一个文件中,或是硬盘上,具体是用哪个方法我不记得了
回复 使用道具 举报
xuehuayous 发表于 2014-3-26 14:57
write字节流是写入操作,目的设备可以是内存、硬盘、控制台
print应该是单纯在控制台输出。 ...

谢谢  可是我用Print也写入到文件了 ,只不过不知道写入的是这个数组的哈希值还是个什么东西,
回复 使用道具 举报
  1. import java.io.*;
  2. public class Demo
  3. {
  4.         public static void main(String[]agrs)throws Exception
  5.         {
  6.         PrintStream ps=new PrintStream("t.txt");
  7.                 char []a=new char[]{'a','b','c','d'};
  8.                 ps.print(0x61);//写入了字符串97
  9.                 ps.write(0x61);//写入了字母a
  10.                 ps.write(String.valueOf(0x61).getBytes());//等于print(0x61);
  11.                 ps.print(a);//写入字符数组
  12.                
  13.         }
  14. }
  15. //print,println,写入数据是先转换成字符串再写入
  16. //write(int)如果write()中的数据是整数,那么它将写入整数在ASCII对应的数据
  17. //如果是write(byte[]) 写入的是二进制,那么任何数据要写入,就得先转换为二进制
  18. //当你写入的就要调用相应的getBytes()
  19. //print(char []) ,打印数组,记住打印就是先转换成字符串再写入,那么打印字符数组就是把字符数组的
  20. //每个字符在写入前先转换成字符串,因此t.txt中显示不是一个个字符,而是一个个字符串
复制代码

QQ截图20140326153441.png (2.65 KB, 下载次数: 43)

QQ截图20140326153441.png

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
print方法可以将各种类型的数据转换成字符串的形式输出。重载的write方法只能输出字符、字符数组、字符串等与字符相关的数据。
回复 使用道具 举报
回复 使用道具 举报

希望版主给分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马