随笔 - 2  文章 - 6  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(1)

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

java中提供了io类库,可以轻松的用java实现对文件的各种操作。下面就来说一下如何用java来实现这些操作。
 
新建目录<%@ page contentType='text/html;charset=gb2312'%>
<%
//String URL = request.getRequestURI();
String filePath='C:\\测试\\';
filePath=filePath.toString();//中文转换
java.io.File myFilePath=new java.io.File(filePath);
if(!myFilePath.exists())
myFilePath.mkdir();
%>
 
新建文件
<%@ page contentType='text/html;charset=gb2312'%>
<%@ page import='java.io.*' %>
<%
String filePath='c:/测试/newFile.txt';
filePath=filePath.toString();
File myFilePath=new File(filePath);
if(!myFilePath.exists())
myFilePath.createNewFile();
FileWriter resultFile=new FileWriter(myFilePath);
PrintWriter myFile=new PrintWriter(resultFile);
String content ='这是测试数据';
String strContent = content.toString();
myFile.println(strContent);
resultFile.close();
%>
 
删除文件<%@ page contentType='text/html;charset=gb2312'%>
<%
String filePath='c://测试//newFile.txt';
filePath=filePath.toString();
java.io.File myDelFile=new java.io.File(filePath);
if(myDelFile.exists())
{  
    myDelFile.delete();
    out.println(filePath+'删除成功!!!');
}
else
{
    out.println(filePath+'该文件不存在');
}
%>
文件拷贝<%@ page contentType='text/html; charset=gb2312' %>
<%@ page import='java.io.*' %>
<%
int bytesum=0;
int byteread=0;
//file:读到流中
InputStream inStream=new FileInputStream('c://测试//newFile.txt');
FileOutputStream fs=new FileOutputStream( 'c://测试//copyFile.txt');
byte[]  buffer =new  byte[1444];
int length;
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();
%>
 
整个文件夹拷贝
<%@ page contentType='text/html;charset=gb2312'%>
<%@ page import='java.io.*' %>
<%String url1='C:/aaa';
  String url2='d:/java/';
  (new File(url2)).mkdirs();
 File[] file=(new File(url1)).listFiles();
 for(int i=0;i<file.length;i++){
  if(file[i].isFile()){
   file[i].toString();
   FileInputStream input=new FileInputStream(file[i]);
   FileOutputStream output=new FileOutputStream(url2+'/'+(file[i].getName()).toString());
   byte[] b=new byte[1024*5];
    int len;
    while((len=input.read(b))!=-1){
    output.write(b,0,len);
    }
    output.flush();
    output.close();
    input.close();
  }
 }
%>
 
文件下载
<%@ page contentType='text/html; charset=gb2312'%>
<%@ page import='java.io.*' %>
<%
  String fileName = 'newFile.txt'.toString();
  //读到流中
  InputStream inStream=new FileInputStream('c://测试//newFile.txt');
  //设置输出的格式
  response.reset();
  response.setContentType('text/plain');
  response.addHeader('Content-Disposition','attachment; filename=\'' + fileName + '\'');
  //循环取出流中的数据
  byte[] b = new byte[100];
  int len;
  ServletOutputStream outStream = response.getOutputStream();
 
  while((len=inStream.read(b)) >0)
  outStream.write(b,0,len);
  outStream.flush();
  outStream.close();
  inStream.close();
%>
 
数据库字段中的文件下载
<%@ page contentType='text/html;charset=gb2312'%>
<%@ page import='java.util.*,java.sql.*,java.io.*'%>
<%
    String id = request.getParameter('id');
    if(id==null)
    {   throw new Exception ('没有找到图片');
    }
    else
    {
       try
       {
com.gzrealmap.lib.jdbc.JDBCUtil  SqlBean= com.gzrealmap.lib.jdbc.JDBCUtil.getInstance();
               SqlBean.connect();
               String sql = 'select * from innernews where id = ''+79+''';
               ResultSet rs = SqlBean.queryforUpdate(sql);
               rs.next();
               //String fileNamedb = rs.getString('imageName');
               String file= rs.getString('acc');
               //String fileName = new String(fileNamedb.getBytes(),'iso-8859-1');
               String fileName = 'a.jpg';
                response.setHeader('Content-Disposition',  'inline; filename=\'' + fileName + '\'');    
               String filter = fileName.substring(fileName.lastIndexOf('.'));
              
               if(filter.equals('.txt'))
               {
                   response.setContentType('text/plain');
               }
               else if(filter.equals('.doc')||filter.equals('.dot'))
               {
                   response.setContentType('application/msword');
               }
               else
               {
                 response.setContentType('image/jpeg;charset=GB2312');
               }
               ServletOutputStream o = response.getOutputStream();
               //o.write(file);
               out.println(file);
               //o.flush();
               //o.close();
               SqlBean.disconnect();
       }
        catch(Exception ex)
       {
           out.println(ex.getMessage());
       }
    }  
%>
 
把网页保存成文件<%@ page contentType='text/html;charset=gb2312'%>
<%@ page import='java.text.*,java.util.*,java.net.*,java.io.*'%>
<%
 URL stdURL = null;
 BufferedReader stdIn = null;
 PrintWriter stdOut = null;
 try {
  stdURL = new URL('http://www.163.com');
 }
 catch (MalformedURLException e) {
   throw e;
 }
 
try {
    //将字节流转变成为字符流
    stdIn = new BufferedReader(new InputStreamReader(stdURL.openStream()));
    String theFileName = 'c://测试//163.html';
    stdOut = new PrintWriter(new BufferedWriter(new FileWriter(theFileName.toString())));
 }
 catch (IOException e) {
 }
 
 /***把URL指定的页面以流的形式读出,写成指定的文件***/
 try {
    String strHtml = '';
   while((strHtml = stdIn.readLine())!=null) {
   stdOut.println(strHtml);
   }
 }
 catch (IOException e) {
   throw e;
 }
 finally {  
   try {
     if(stdIn != null)
       stdIn.close();
     if(stdOut != null)
       stdOut.close();
       }
   catch (Exception e) {
     System.out.println(e);
   }
 }
%>
 
直接下载网上的文件
<%@ page contentType='text/html;charset=gb2312'%>
<%@ page import='java.io.*'%>
<%@ page import='java.net.*'%>
<%
  int bytesum=0;
  int byteread=0;
  URL url = new URL('http://pimg.163.com/sms/micheal/logo.gif');
  URLConnection conn = url.openConnection();
  InputStream inStream = conn.getInputStream();
 
  /**
  String theFileName = 'c:/测试/logo.gif';
  theFileName = theFileName.toString();
  File myFilePath=new File(theFileName);
  if(!myFilePath.exists())
  myFilePath.createNewFile();
  **/
 
  FileOutputStream fs=new FileOutputStream('c:/测试/logo2.gif');
  byte[]  buffer =new  byte[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);
     }
%>
 
按行读文件 <%@ page contentType='text/html; charset=gb2312' %>
<%@ page import='java.io.*' %>
<%
FileReader myFileReader=new FileReader('c:/哈哈.txt');
BufferedReader myBufferedReader=new BufferedReader(myFileReader);
String myString=null;
String resultString=new String();
while((myString=myBufferedReader.readLine())!=null) {
resultString=resultString+myString+'<br>';
}
out.println(resultString);
myFileReader.close();
%>
 
对word文档的处理(上传与下载)<%@ page contentType='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)文件头上加:<%@ page  contentType='application/msword'%> 
xml文件里:
<mime-mapping>
        <extension>doc</extension>
        <mime-type>application/msword</mime-type>
</mime-mapping>
2)可以用js,以下代码来自引用:
<%@ page contentType='text/html;charset=gb2312' import= 'java.io.*'%>
<HTML>
<script>
var wrd=new ActiveXObject('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('This is some text.')
wrd.Application.Activate()
wrd.ActiveDocument.SaveAs('c:\\exam111.doc')
wrd=null
</script>
</HTML>
 
2,下载:
<%@ page contentType='text/html;charset=gb2312' import= 'java.io.*'%>
<%// 得到文件名字和路径
  String filename = 'jsp.doc';
  String filepath = 'C:\\';
 
  // 设置响应头和下载保存的文件名
  response.setContentType('APPLICATION/OCTET-STREAM');
  response.setHeader('Content-Disposition','attachment; filename=\'' + filename + '\'');
 
  // 打开指定文件的流信息
  java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);
  //FileOutputStream out  = new FileOutputStream(filepath+'测试\\' + filename);
  // 写出流信息
  int i;
  while ((i=fileInputStream.read()) != -1) {
   out.write(i);
  }
  fileInputStream.close();
  out.close();
 %>
posted on 2007-03-31 23:25 weikj 阅读(88) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: