黑马程序员技术交流社区

标题: PrintStream,,Write方法,Print方法 [打印本页]

作者: 霍振鹏    时间: 2014-3-26 14:12
标题: PrintStream,,Write方法,Print方法
本帖最后由 霍振鹏 于 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. }
复制代码

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

谢谢  可是我用Print也写入到文件了 ,只不过不知道写入的是这个数组的哈希值还是个什么东西,
作者: caijunsong    时间: 2014-3-26 15:37
  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, 下载次数: 44)

QQ截图20140326153441.png

作者: MVP    时间: 2014-3-26 17:56
print方法可以将各种类型的数据转换成字符串的形式输出。重载的write方法只能输出字符、字符数组、字符串等与字符相关的数据。
作者: 霍振鹏    时间: 2014-3-26 21:03
caijunsong 发表于 2014-3-26 15:37

谢谢  懂了
作者: caijunsong    时间: 2014-3-26 21:47
霍振鹏 发表于 2014-3-26 21:03
谢谢  懂了

希望版主给分




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2