软件艺术思考者  
混沌,彷徨,立志,蓄势...
公告
日历
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

随笔分类(86)

随笔档案(85)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

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

   1。新建目录

<%@ page contentType="text/html;charset=gb2312"%>
<%
String filePath="c:/aaa/";
filePath=filePath.toString();//中文转换
java.io.File myFilePath=new java.io.File(filePath);
if(!myFilePath.exists())
myFilePath.mkdir();
%>

  2。新建文件

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*" %>
<%
String filePath="c:/哈哈.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 strContent = "中文测试".toString();
myFile.println(strContent);
resultFile.close();
%>

 3。删除文件

<%@ page contentType="text/html;charset=gb2312"%>
<%
String filePath="c:/支出证明单.xls";
filePath=filePath.toString();
java.io.File myDelFile=new java.io.File(filePath);
myDelFile.delete();
%>

 4。文件拷贝

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
int bytesum=0;
int byteread=0; 
file://读到流中
InputStream inStream=new FileInputStream("c:/aaa.doc");
FileOutputStream fs=new FileOutputStream( "d:/aaa.doc");
byte[]  buffer =new  byte[1444];
int length;
while ((byteread=inStream.read(buffer))!=-1)
 {
   out.println("<DT><B>"+byteread+"</B></DT>");
   bytesum+=byteread;
   System.out.println(bytesum);
   fs.write(buffer,0,byteread);
 } 
inStream.close();
%>

 5。整个文件夹拷贝

<%@ 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();
  }
 }
%>

 6。文件下载

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
  String fileName = "zsc104.swf".toString();
//读到流中
InputStream inStream=new FileInputStream("c:/zsc104.swf");
//设置输出的格式
  response.reset();
  response.setContentType("bin");
  response.addHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");
//循环取出流中的数据
  byte[] b = new byte[100];
  int len;
  while((len=inStream.read(b)) >0)
  response.getOutputStream().write(b,0,len);  
  inStream.close();
%>

 7。数据库字段中的文件下载

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*" %>
<%@ page import="java.io.*" %>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
int bytesum=0;
int byteread=0;
//打开数据库
ResultSet result=null;
String Sql=null;
PreparedStatement prestmt=null; 
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//取得数据库中的数据
Sql="select  *  from  t_local_zhongzhuan ";
result=DbaObj.ExecuteQuery(Sql);
result.next();

file://将数据库中的数据读到流中
InputStream inStream=result.getBinaryStream("content");
FileOutputStream fs=new FileOutputStream( "c:/dffdsafd.doc");

byte[]  buffer =new  byte[1444];
int length;
while ((byteread=inStream.read(buffer))!=-1)
  {
     out.println("<DT><B>"+byteread+"</B></DT>");
     bytesum+=byteread;
     System.out.println(bytesum);
     fs.write(buffer,0,byteread);
     }
%>

 8。把网页保存成文件

<%@ page import="java.text.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%
 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()));
   stdOut = new PrintWriter(new BufferedWriter(new FileWriter("c:/163.html")));
 }
 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);
   }
 }
%>

 9。直接下载网上的文件

<%@ 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();
 FileOutputStream fs=new FileOutputStream( "c:/abc.gif");

  byte[]  buffer =new  byte[1444];
   int length;
    while ((byteread=inStream.read(buffer))!=-1)
    {
       out.println("<DT><B>"+byteread+"</B></DT>");
       bytesum+=byteread;
       System.out.println(bytesum);
       fs.write(buffer,0,byteread);
     }
%>

  这些是我积累的一些java中对文件的操作,希望对大家有点启发。


java处理压缩文件2006-9-1 0:01:11
java处理压缩文件
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class zipTest2 {
 String fileName1 = ".\\zipfile.zip";
 String fileName2 = ".\\zipfile.zip";
 File sourceFile = new File(fileName1);
 File targetFile = new File(fileName2);

 public void makeZip()
 {

  ZipOutputStream zipos;
  try {
   if (!targetFile.exists())
    targetFile.createNewFile();
   zipos = new ZipOutputStream(new FileOutputStream(targetFile));

   zipos.setMethod(ZipOutputStream.DEFLATED); // 设置压缩方法

   zipos.putNextEntry(new ZipEntry("file1.txt"));// 创建文件

   DataOutputStream data_output = new DataOutputStream(zipos);

   data_output.writeInt(1);

   zipos.putNextEntry(new ZipEntry("file2.txt"));
   data_output.writeUTF("Helloworld");

   zipos.close();

   // 生成一个ZIP entry,写入文件输出流中,并将输出流定位于entry起始处。
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public void unzip()
 {
  ZipInputStream zipis;
  try {
   zipis = new ZipInputStream(new FileInputStream(fileName1));

   File dir = new File(fileName1.substring(0, fileName1.length() - 4));
   System.out.println(dir);
   dir.mkdir();// 创建文件夹
   ZipEntry ze;// 压缩内部文件入口
   while ( (ze = zipis.getNextEntry()) != null) {
    String file = fileName1.substring(0, fileName1.length() - 4)
      + "\\" + ze.getName();// 生成文件绝对路径及文件名
    File newFile = new File(file);
    System.out.println(file);
    newFile.createNewFile();
    DataInputStream data_input = new DataInputStream(zipis);// 源
    DataOutputStream fileWriter = new DataOutputStream(// 目标
      new FileOutputStream(newFile));

    int BUFFER = 1024;
    byte[] buffer = new byte[BUFFER];
    int count = 0;
    while ( (count = data_input.read(buffer, 0, BUFFER)) != -1) {
     fileWriter.write(buffer, 0, count);
    }
    // 关闭流
    fileWriter.flush();
    fileWriter.close();

   }
   zipis.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args)
 {
  zipTest2 z = new zipTest2();
  // z.makeZip();
  z.unzip();
 }

}

posted on 2006-09-04 16:08 智者无疆 阅读(389) 评论(1)  编辑  收藏 所属分类: about java
评论:

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


网站导航:
 
 
Copyright © 智者无疆 Powered by: 博客园 模板提供:沪江博客


   观音菩萨赞