太阳雨

痛并快乐着

BlogJava 首页 新随笔 联系 聚合 管理
  67 Posts :: 3 Stories :: 33 Comments :: 0 Trackbacks

这里不讨论有关apache的commons-io中的FileUtils,只是一些基本的对文件的操作的代码,有时间会整理一个FileUtils的用法的文章。
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 2008-06-19 11:40 小虫旺福 阅读(510) 评论(0)  编辑  收藏 所属分类: j2se

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


网站导航: