java中输入输出流重要吗

推荐 生活 2019-06-21 01:44:42 4362

本文收集整理关于java中输入输出流重要吗的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:Java IO流中先关闭输出流还是先关闭输入流?为什么?
  • Q2:JAVA中输入输出流和缓冲式输入输出流出有什么区别?
  • Q3:java中输入输出流如何把数据输出为Excel表格形式
  • Q4:java输入输出流的本质是什么?
  • Q5:JAVA输入输出流基础问题
  • Q6:java输入输出流的区别?谁知道的帮帮忙啊
  • Q7:java中输入输出流是如何工作的
  • Q1:Java IO流中先关闭输出流还是先关闭输入流?为什么?

    java中需要手动释放的资源常见的有以下两个:

    流相关资源

    流相关资源一般遵循:

    1)先开后关,先开的输入流,再开的输出流,通过读取输入流写入输出流中,那么应该先关输出流,再关输入流,但是一般关闭输入输出流操作都是在读写完成后的finally中执行的,所以即使先关输入流,再关输出流也不会任何问题,因为读写操作没有进行了。

    2)先关外层,再关内层。如BufferedInputStream包装了一个FileInputStream,那么先

    关BufferedInputStream,再关FileInputStream。但要注意的是由于一般处理流持有节点流引用,处理流都会在自己的close方法中去关闭节点流,因此我们只要关闭外层的处理流即可,如果多此一举的关闭节点流反而会报错。如BufferedInputStream包装了FileInputStream,我们只要关闭BufferedInputStream即可

    3)只关处理流,不关节点流,原因见上述第二条

    流相关文章参考:http://blog.csdn.net/u012250875/article/details/78341874

    jdbc相关资源

    Connection,PrepareStatement,ResultSet三个资源。这三个资源的获取顺序是:

    先获得一个jdbc连接对象Connection,再通过连接对象获得一个sql预处理对象PrepareStatement,如果是查询的话最后还会通过PrepareStatement对象获取一个结果集ResultSet对象,关闭顺序与获取顺序正好相反。先关ResultSet,再关PrepareStatement,最后关Connection。

    Q2:JAVA中输入输出流和缓冲式输入输出流出有什么区别?

    BufferedOutputStream与任何一个OutputStream相同,除了用一个另外的flush( ) 方法来保证数据缓冲器被写入到实际的输出设备。因为BufferedOutputStream是通过减小系统写数据的时间而提高性能的,可以调用flush( )方法生成缓冲器中待写的数据。不像缓冲输入,缓冲输出不提供额外的功能,Java中输出缓冲器是为了提高性能的。
    输入流同理

    Q3:java中输入输出流如何把数据输出为Excel表格形式

    实现代码如下:

    import org.apache.poi.hssf.usermodel.*;

    import java.io.FileOutputStream;

    import java.io.IOException;

    publicclass CreateCells

    {

    publicstaticvoid main(String[] args)

    throws IOException

    {

    HSSFWorkbook wb = new HSSFWorkbook();//建立新HSSFWorkbook对象

    HSSFSheet sheet = wb.createSheet("new sheet");//建立新的sheet对象

    // Create a row and put some cells in it. Rows are 0 based.

    HSSFRow row = sheet.createRow((short)0);//建立新行

    // Create a cell and put a value in it.

    HSSFCell cell = row.createCell((short)0);//建立新cell

    cell.setCellValue(1);//设置cell的整数类型的值

    // Or do it on one line.

    row.createCell((short)1).setCellValue(1.2);//设置cell浮点类型的值

    row.createCell((short)2).setCellValue("test");//设置cell字符类型的值

    row.createCell((short)3).setCellValue(true);//设置cell布尔类型的值

    HSSFCellStyle cellStyle = wb.createCellStyle();//建立新的cell样式

    cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));//设置cell样式为定制的日期格式

    HSSFCell dCell =row.createCell((short)4);

    dCell.setCellValue(new Date());//设置cell为日期类型的值

    dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式

    HSSFCell csCell =row.createCell((short)5);

    csCell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置cell编码解决中文高位字节截断

    csCell.setCellValue("中文测试_Chinese Words Test");//设置中西文结合字符串

    row.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_ERROR);//建立错误cell

    // Write the output to a file

    FileOutputStream fileOut = new FileOutputStream("workbook.xls");

    wb.write(fileOut);

    fileOut.close();

    }

    }

    Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。

    用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。

    Www.YijItA∴O.COm

    Q4:java输入输出流的本质是什么?

    Java输入输出流的本质是I/O操作,是指使用Java进行输入输出操作。Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。

    流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件、内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。

    Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基于字符流的Reader和 Writer是后来加入作为补充的。

    WW:W.YiJITaO.COM

    Q5:JAVA输入输出流基础问题

    InputStream 类有一个方法是read 这个方法的具体说明是:
    从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int
    字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
    子类必须提供此方法的一个实现。
    返回:
    下一个数据字节;如果到达流的末尾,则返回 -1。
    (以上内容来自官方jdk文档)
    while(in.read()!=-1)
    所以这个不等于-1的意思就是还有内容,目标文件的内容还没有读完的意思

    Q6:java输入输出流的区别?谁知道的帮帮忙啊

    最简单的理解,输入流就是把数据读入内存的一条通道,至于这里的数据时哪里来的,各个不同的流之间有区别,它可以来自于本地文件,用户键盘的输入,网络服务器等等,总之你要获取数据,就可以通过输入流。相反,输出流就是数据输出的通道,如我们程序中常用的System.out.println();就是通过标准输出流实现打印的。

    Q7:java中输入输出流是如何工作的

    书上多的是,
    总之一句话,
    流不会改变”看“的东西,
    只是“看”的角度不一样WWW.yiJITaO.^COm

    相关文章
    输入法不见了怎么恢复2019-01-12
    用输入法打出特殊符号2019-01-13
    2345王牌输入法彻底删除2019-01-15
    淘宝确认收货还要输入支付宝密码2019-01-16
    win10输入法设置在哪里2019-01-16
    没有百度输入法怎么办2019-01-16
    手写输入法哪个最好用2019-01-17
    电脑上怎么减少输入法2019-01-17
    电脑上怎么输入大于等于符号2019-01-19
    excel表格怎样输入日期2019-01-29