java中的输出流代码 java输出流设置字符编码

java输入流和输出流文件应该建在什么位置

在Java程序中,要想从文件中读取数据,需要在程序和文件之间建立一条数据输入的通道,这样程序就可以从文件中读取数据了;反之,如果要在Java程序中把数据写入到文件中,也需要在程序和文件之间建立一条数据输出的通道。当程序创建输入流对象时,Java会自动建立这个数据输入通道,而创建输出流时,Java也会自动建立这个数据输出通道。如下图所示:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟空间、营销软件、网站建设、太子河网站维护、网站推广。

Java程序读取与写入数据

输入流是从文件读取数据,是一个拉取数据的过程;输出流是将数据写入到文件,是一个推送数据的过程。

为了便于理解输入输出流,前面都是以文件为数据源来讨论的。其实,Java的输入与输出流支持任何数据源的读取与写入,包括键盘、文件、网络、数据库等数据源。

输入流和输出流按读取和写入的数据单位可分为字节流和字符流,字节流是以字节为单位传输数据的流,字符流是以字符为单位传输数据的流。

Java所提供的输入流和输出流类封装在Java.io包中

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

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

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

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

java 输入输出流

package IO; // 定义包名

import java.io.*;// 引入java.io包下的所有类

// 定义一个类

public class FileExample {

// 定义构造函数

public FileExample() {

// 调用父类的构造函数

super();

}

// 定义主方法

public static void main(String[] args) {

// 捕获异常

try {

// 定义了一个变量, 用于标识输出文件

String outfile = "demoout.xml";

// 定义了一个变量, 用于标识输入文件

String infile = "demoin.xml";

/**

* 用FileOutputStream定义一个输入流文件,然后用BuferedOutputStream调用FileOutputStream对象生成一个缓冲输出流

* 然后用DataOutputStream调用BuferedOutputStream对象生成数据格式化输出流

*/

DataOutputStream dt=new DataOutputStream(new BufferedOutputStream(new FileOutputStream(outfile)));

BufferedWriter NewFile = new BufferedWriter(new OutputStreamWriter(dt, "GBK"));

// 对中文的处理

/**

*用FileInputStream定义一个输入流文件,然后用BuferedInputStream调用FileInputStream对象生成一个缓冲输出流

* ,其后用DataInputStream中调用BuferedInputStream对象生成数据格式化输出流

*/

DataInputStream rafFile1 = new DataInputStream(new BufferedInputStream(new FileInputStream(infile)));

BufferedReader rafFile = new BufferedReader(new InputStreamReader(rafFile1, "GBK"));

String xmlcontent = "";

char tag = 0;// 文件友字符0结束

while (tag != (char) (-1)) {

xmlcontent = xmlcontent + tag + rafFile.readLine() + '\n';

tag = (char) rafFile.read();

}

NewFile.write(xmlcontent);// 将内容写入到文件中

NewFile.flush();//清空缓冲区使输出流写出

NewFile.close(); // 关闭流

rafFile.close();// 关闭流

System.gc();// 调用垃圾回收器

} catch (NullPointerException exc) {

// 如果发生空指针异常则走这里

exc.printStackTrace();

} catch (java.lang.IndexOutOfBoundsException outb) {

// 如果发生索引越界则执行这里的方法

System.out.println(outb.getMessage());

outb.printStackTrace();//控制台的红字

} catch (FileNotFoundException fex) {

// 这里用于处理文件未找到异常

System.out.println("fex" + fex.getMessage());

} catch (IOException iex) {

// 这里是IO异常

System.out.println("iex" + iex.getMessage());

}

}

}

java输入输出流

你先把xls文件组织好

然后用

response.setContentType(

"application/ms-excel;charset=GB2312");

response.setHeader(

"Content-Disposition",

"attachment;filename=keke.xls");

设置响应头

然后把xls对象用二进制流读进来

转成byte[]

在用

response.getOutputStream()得到响应的输出流

把btye[]输入到也面就可以了

由于我没有用过楼主所用的WritableWorkbook这个类,所以怎样转我也不敢乱说

我做XLS的时候用的是POI的包,他内部封装了一些东西,可以很容易的就得到workbook的流.

如果楼主有兴趣,建议看一下,使用起来非常简单


分享文章:java中的输出流代码 java输出流设置字符编码
文章网址:http://pwwzsj.com/article/ddeoscc.html