JAVA IO操作文件(包括word文档的显示)-asp.net关注

-

java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。

新建目录<%@pagecontentType="text/html;charset=gb2312"%>
<%
//StringURL=request.getRequestURI();
StringfilePath="C:测试";
filePath=filePath.toString();//中文转换
java.io.FilemyFilePath=newjava.io.File(filePath);
if(!myFilePath.exists())
myFilePath.mkdir();
%>

新建文件
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%
StringfilePath="c:/测试/newFile.txt";
filePath=filePath.toString();
FilemyFilePath=newFile(filePath);
if(!myFilePath.exists())
myFilePath.createNewFile();
FileWriterresultFile=newFileWriter(myFilePath);
PrintWritermyFile=newPrintWriter(resultFile);
Stringcontent="这是测试数据";
StringstrContent=content.toString();
myFile.println(strContent);
resultFile.close();
%>

删除文件<%@pagecontentType="text/html;charset=gb2312"%>
<%
StringfilePath="c://测试//newFile.txt";
filePath=filePath.toString();
java.io.FilemyDelFile=newjava.io.File(filePath);
if(myDelFile.exists())
{
myDelFile.delete();
out.println(filePath+"删除成功!!!");
}
else
{
out.println(filePath+"该文件不存在");
}
%>
文件拷贝<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%
intbytesum=0;
intbyteread=0;
//file:读到流中
InputStreaminStream=newFileInputStream("c://测试//newFile.txt");
FileOutputStreamfs=newFileOutputStream("c://测试//copyFile.txt");
byte[]buffer=newbyte[1444];
intlength;
while((byteread=inStream.read(buffer))!=-1)
{
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
out.println(bytesum);
fs.write(buffer,0,byteread);
}
inStream.close();
%>

整个文件夹拷贝
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%Stringurl1="C:/aaa";
Stringurl2="d:/java/";
(newFile(url2)).mkdirs();
File[]file=(newFile(url1)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
file[i].toString();
FileInputStreaminput=newFileInputStream(file[i]);
FileOutputStreamoutput=newFileOutputStream(url2+"/"+(file[i].getName()).toString());
byte[]b=newbyte[1024*5];
intlen;
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
}
}
%>

文件下载
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%
StringfileName="newFile.txt".toString();
//读到流中
InputStreaminStream=newFileInputStream("c://测试//newFile.txt");
//设置输出的格式
response.reset();
response.setContentType("text/plain");
response.addHeader("Content-Disposition","attachment;filename=""+fileName+""");
//循环取出流中的数据
byte[]b=newbyte[100];
intlen;
ServletOutputStreamoutStream=response.getOutputStream();

while((len=inStream.read(b))>0)
outStream.write(b,0,len);
outStream.flush();
outStream.close();
inStream.close();
%>
数据库字段中的文件下载
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.util.*,java.sql.*,java.io.*"%>
<%
Stringid=request.getParameter("id");
if(id==null)
{thrownewException("没有找到图片");
}
else
{
try
{
com.gzrealmap.lib.jdbc.JDBCUtilSqlBean=com.gzrealmap.lib.jdbc.JDBCUtil.getInstance();
SqlBean.connect();
Stringsql="select*frominnernewswhereid=’"+79+"’";
ResultSetrs=SqlBean.queryforUpdate(sql);
rs.next();
//StringfileNamedb=rs.getString("imageName");
Stringfile=rs.getString("acc");
//StringfileName=newString(fileNamedb.getBytes(),"iso-8859-1");
StringfileName="a.jpg";
response.setHeader("Content-Disposition","inline;filename=""+fileName+""");
Stringfilter=fileName.substring(fileName.lastIndexOf("."));

if(filter.equals(".txt"))
{
response.setContentType("text/plain");
}
elseif(filter.equals(".doc")||filter.equals(".dot"))
{
response.setContentType("application/msword");
}
else
{
response.setContentType("image/jpeg;charset=GB2312");
}
ServletOutputStreamo=response.getOutputStream();
//o.write(file);
out.println(file);
//o.flush();
//o.close();
SqlBean.disconnect();
}
catch(Exceptionex)
{
out.println(ex.getMessage());
}
}
%>

把网页保存成文件<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.text.*,java.util.*,java.net.*,java.io.*"%>
<%
URLstdURL=null;
BufferedReaderstdIn=null;
PrintWriterstdOut=null;
try{
stdURL=newURL("");
}
catch(MalformedURLExceptione){
throwe;
}

try{
//将字节流转变成为字符流
stdIn=newBufferedReader(newInputStreamReader(stdURL.openStream()));
StringtheFileName="c://测试//163.html";
stdOut=newPrintWriter(newBufferedWriter(newFileWriter(theFileName.toString())));
}
catch(IOExceptione)

/***把URL指定的页面以流的形式读出,写成指定的文件***/
try{
StringstrHtml="";
while((strHtml=stdIn.readLine())!=null){
stdOut.println(strHtml);
}
}
catch(IOExceptione){
throwe;
}
finally{
try{
if(stdIn!=null)
stdIn.close();
if(stdOut!=null)
stdOut.close();
}
catch(Exceptione){
System.out.println(e);
}
}
%>

直接下载网上的文件
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%@pageimport="java.net.*"%>
<%
intbytesum=0;
intbyteread=0;
URLurl=newURL("/Article/UploadFiles/200712/20071206192052528.gif");
URLConnectionconn=url.openConnection();
InputStreaminStream=conn.getInputStream();

/**
StringtheFileName="c:/测试/logo.gif";
theFileName=theFileName.toString();
FilemyFilePath=newFile(theFileName);
if(!myFilePath.exists())
myFilePath.createNewFile();
**/

FileOutputStreamfs=newFileOutputStream("c:/测试/logo2.gif");
byte[]buffer=newbyte[1444];
while((byteread=inStream.read(buffer))!=-1)
{
out.println("<DT><B>"+byteread+"</B></DT>");
bytesum+=byteread;
//System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
%>

按行读文件<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.io.*"%>
<%
FileReadermyFileReader=newFileReader("c:/哈哈.txt");
BufferedReadermyBufferedReader=newBufferedReader(myFileReader);
StringmyString=null;
StringresultString=newString();
while((myString=myBufferedReader.readLine())!=null){
resultString=resultString+myString+"<br>";
}
out.println(resultString);
myFileReader.close();
%>

对word文档的处理(上传与下载)<%@pagecontentType="application/msword"%>
<!--以上这行设定本网页为excel格式的网页-->
<%
response.setHeader("Content-disposition","inline;filename=test1.doc");//线上浏览方式
//response.setHeader("Content-disposition","attachment;filename=test1.doc");//下载方式
//以上这行设定传送到前端浏览器时的档名为test1.doc
//就是靠这一行,让前端浏览器以为接收到一个word档
%>
//然后输出动态内容就可以得到一个word文档了

1,打开:
1)文件头上加:<%@pagecontentType="application/msword"%>
xml文件里:
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
2)可以用js,以下代码来自引用:
<%@pagecontentType="text/html;charset=gb2312"import="java.io.*"%>
<HTML>
<script>
varwrd=newActiveXObject("Word.Application")
wrd.visible=true
alert("您的"+wrd.Application.Caption+"安装路径为:n"+wrd.Application.Path+"n版本号是:"+wrd.Application.version+"n注册使用者是:"+wrd.Application.UserName)
wrd.Documents.Add()
//wrd.Documents.Open("c:exam.doc")
wrd.Selection.TypeText("Thisissometext.")
wrd.Application.Activate()
wrd.ActiveDocument.SaveAs("c:exam111.doc")
wrd=null
</script>
</HTML>

2,下载:
<%@pagecontentType="text/html;charset=gb2312"import="java.io.*"%>
<%//得到文件名字和路径
Stringfilename="jsp.doc";
Stringfilepath="C:";

//设置响应头和下载保存的文件名
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment;filename=""+filename+""");

//打开指定文件的流信息
java.io.FileInputStreamfileInputStream=newjava.io.FileInputStream(filepath+filename);
//FileOutputStreamout=newFileOutputStream(filepath+"测试"+filename);
//写出流信息
inti;
while((i=fileInputStream.read())!=-1){
out.write(i);
}
fileInputStream.close();
out.close();
%>
posted @ 2011-05-24 09:31  程承JAVA  阅读(832)  评论(0编辑  收藏  举报