工作多年的我,依然不知道输出流,输入流到底是个什么东西。
比如将一串字符串写到文件中,到底是输入流还是输出流。
如何判断用输入流还是用输出流或者说判断的依据是什么。
OutputStream:
FileOutputStream fos=new FileOutputStream("E:"+File.separator+"upload"+File.separator+"a.txt"); byte[] bytes="你好".getBytes(Charset.forName("UTF-8")); fos.write(bytes); fos.close();
上面一段代码是将你好两个字输入到文件a.txt中。
从上面的代码判断向文件写入数据是输出流。
把a.txt中的内容读到java中:
InputStream:
FileInputStream fis=new FileInputStream("E:"+File.separator+"upload"+File.separator+"a.txt"); int size=6; byte[] b=new byte[size]; int c=0; while ((c=fis.read(b))!=-1){ System.out.println(new String(b,0,c)); }
从上面的截图中我们看到“你好”两个字已经写入到a.txt中了,并且也从a.txt中读取了“你好”,并在控制台打印了。
从上面的两个例子我们总结输入流和输出流的判断依据:
数据从内存到文件是输出流,用OutputStream;
数据从文件到内存是输入流,用InputStream.
判断的参照物是内存。