Java Bo&Yang
java的交流从这里开始
posts - 8,comments - 6,trackbacks - 0
  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 2005-08-02 16:11 Java BY 阅读(926) 评论(0)  编辑  收藏

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


网站导航: