`
zengbo0710
  • 浏览: 414806 次
社区版块
存档分类
最新评论

java中的文件操作

阅读更多

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

生成文件时,可用下边的方法来设置流的编码

PrintWriter myFile =new PrintWriter(new OutputStreamWriter(new FileOutputStream(文件名),"gb2312"));
 
新建目录

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%
  3. //String URL = request.getRequestURI();
  4. String filePath="C:\\测试\\";
  5. filePath=filePath.toString();//中文转换
  6. java.io.File myFilePath=new java.io.File(filePath);
  7. if(!myFilePath.exists())
  8. myFilePath.mkdir();
  9. %>

新建文件

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%@ page import="java.io.*" %>
  3. <%
  4. String filePath="c:/测试/newFile.txt";
  5. filePath=filePath.toString();
  6. File myFilePath=new File(filePath);
  7. if(!myFilePath.exists())
  8. myFilePath.createNewFile();
  9. FileWriter resultFile=new FileWriter(myFilePath);
  10. PrintWriter myFile=new PrintWriter(resultFile);
  11. String content ="这是测试数据";
  12. String strContent = content.toString();
  13. myFile.println(strContent);
  14. resultFile.close();
  15. %>

 
删除文件

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%
  3. String filePath="c://测试//newFile.txt";
  4. filePath=filePath.toString();
  5. java.io.File myDelFile=new java.io.File(filePath);
  6. if(myDelFile.exists())
  7. {  
  8.     myDelFile.delete();
  9.     out.println(filePath+"删除成功!!!");
  10. }
  11. else
  12. {
  13.     out.println(filePath+"该文件不存在");
  14. }
  15. %>

文件拷贝

  1. <%@ page contentType="text/html; charset=gb2312" %>
  2. <%@ page import="java.io.*" %>
  3. <%
  4. int bytesum=0;
  5. int byteread=0;
  6. //file:读到流中
  7. InputStream inStream=new FileInputStream("c://测试//newFile.txt");
  8. FileOutputStream fs=new FileOutputStream( "c://测试//copyFile.txt");
  9. byte[]  buffer =new  byte[1444];
  10. int length;
  11. while ((byteread=inStream.read(buffer))!=-1)
  12.  {
  13.    out.println("<DT><B>"+byteread+"</B></DT>");
  14.    bytesum+=byteread;
  15.    out.println(bytesum);
  16.    fs.write(buffer,0,byteread);
  17.  }
  18. inStream.close();
  19. %>

整个文件夹拷贝

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%@ page import="java.io.*" %>
  3. <%String url1="C:/aaa";
  4.   String url2="d:/java/";
  5.   (new File(url2)).mkdirs();
  6.  File[] file=(new File(url1)).listFiles();
  7.  for(int i=0;i<file.length;i++){
  8.   if(file[i].isFile()){
  9.    file[i].toString();
  10.    FileInputStream input=new FileInputStream(file[i]);
  11.    FileOutputStream output=new FileOutputStream(url2+"/"+(file[i].getName()).toString());
  12.    byte[] b=new byte[1024*5];
  13.     int len;
  14.     while((len=input.read(b))!=-1){
  15.     output.write(b,0,len);
  16.     }
  17.     output.flush();
  18.     output.close();
  19.     input.close();
  20.   }
  21.  }
  22. %>

文件下载

  1. <%@ page contentType="text/html; charset=gb2312"%>
  2. <%@ page import="java.io.*" %>
  3. <%
  4.   String fileName = "newFile.txt".toString();
  5.   //读到流中
  6.   InputStream inStream=new FileInputStream("c://测试//newFile.txt");
  7.   //设置输出的格式
  8.   response.reset();
  9.   response.setContentType("text/plain");
  10.   response.addHeader("Content-Disposition","attachment; filename=\"" + fileName + "\"");
  11.   //循环取出流中的数据
  12.   byte[] b = new byte[100];
  13.   int len;
  14.   ServletOutputStream outStream = response.getOutputStream();
  15.  
  16.   while((len=inStream.read(b)) >0)
  17.   outStream.write(b,0,len);
  18.   outStream.flush();
  19.   outStream.close();
  20.   inStream.close();
  21. %>

数据库字段中的文件下载

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%@ page import="java.util.*,java.sql.*,java.io.*"%>
  3. <%
  4.     String id = request.getParameter("id");
  5.     if(id==null)
  6.     {   throw new Exception ("没有找到图片");
  7.     }
  8.     else
  9.     {
  10.        try
  11.        {
  12. com.gzrealmap.lib.jdbc.JDBCUtil  SqlBean= com.gzrealmap.lib.jdbc.JDBCUtil.getInstance();
  13.                SqlBean.connect();
  14.                String sql = "select * from innernews where id = '"+79+"'";
  15.                ResultSet rs = SqlBean.queryforUpdate(sql);
  16.                rs.next();
  17.                //String fileNamedb = rs.getString("imageName");
  18.                String file= rs.getString("acc");
  19.                //String fileName = new String(fileNamedb.getBytes(),"iso-8859-1");
  20.                String fileName = "a.jpg";
  21.                 response.setHeader("Content-Disposition",  "inline; filename=\"" + fileName + "\"");    
  22.                String filter = fileName.substring(fileName.lastIndexOf("."));
  23.               
  24.                if(filter.equals(".txt"))
  25.                {
  26.                    response.setContentType("text/plain");
  27.                }
  28.                else if(filter.equals(".doc")||filter.equals(".dot"))
  29.                {
  30.                    response.setContentType("application/msword");
  31.                }
  32.                else
  33.                {
  34.                  response.setContentType("image/jpeg;charset=GB2312");
  35.                }
  36.                ServletOutputStream o = response.getOutputStream();
  37.                //o.write(file);
  38.                out.println(file);
  39.                //o.flush();
  40.                //o.close();
  41.                SqlBean.disconnect();
  42.        }
  43.         catch(Exception ex)
  44.        {
  45.            out.println(ex.getMessage());
  46.        }
  47.     }  
  48. %>
  49.  

把网页保存成文件

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%@ page import="java.text.*,java.util.*,java.net.*,java.io.*"%>
  3. <%
  4.  URL stdURL = null;
  5.  BufferedReader stdIn = null;
  6.  PrintWriter stdOut = null;
  7.  try {
  8.   stdURL = new URL("<a href="http://www.163.com/">http://www.163.com</a>");
  9.  }
  10.  catch (MalformedURLException e) {
  11.    throw e;
  12.  }
  13.  
  14. try {
  15.     //将字节流转变成为字符流
  16.     stdIn = new BufferedReader(new InputStreamReader(stdURL.openStream()));
  17.     String theFileName = "c://测试//163.html";
  18.     stdOut = new PrintWriter(new BufferedWriter(new FileWriter(theFileName.toString())));
  19.  }
  20.  catch (IOException e) {
  21.  }
  22.  
  23.  /***把URL指定的页面以流的形式读出,写成指定的文件***/
  24.  try {
  25.     String strHtml = "";
  26.    while((strHtml = stdIn.readLine())!=null) {
  27.    stdOut.println(strHtml);
  28.    }
  29.  }
  30.  catch (IOException e) {
  31.    throw e;
  32.  }
  33.  finally {  
  34.    try {
  35.      if(stdIn != null)
  36.        stdIn.close();
  37.      if(stdOut != null)
  38.        stdOut.close();
  39.        }
  40.    catch (Exception e) {
  41.      System.out.println(e);
  42.    }
  43.  }
  44. %>

直接下载网上的文件

  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%@ page import="java.io.*"%>
  3. <%@ page import="java.net.*"%>
  4. <%
  5.   int bytesum=0;
  6.   int byteread=0;
  7.   URL url = new URL("<a href="http://pimg.163.com/sms/micheal/logo.gif">http://pimg.163.com/sms/micheal/logo.gif</a>");
  8.   URLConnection conn = url.openConnection();
  9.   InputStream inStream = conn.getInputStream();
  10.  
  11.   /**
  12.   String theFileName = "c:/测试/logo.gif";
  13.   theFileName = theFileName.toString();
  14.   File myFilePath=new File(theFileName);
  15.   if(!myFilePath.exists())
  16.   myFilePath.createNewFile();
  17.   **/
  18.  
  19.   FileOutputStream fs=new FileOutputStream("c:/测试/logo2.gif");
  20.   byte[]  buffer =new  byte[1444];
  21.     while ((byteread=inStream.read(buffer))!=-1)
  22.     {
  23.        out.println("<DT><B>"+byteread+"</B></DT>");
  24.        bytesum+=byteread;
  25.        //System.out.println(bytesum);
  26.        fs.write(buffer,0,byteread);
  27.      }
  28. %>

按行读文件

  1. <%@ page contentType="text/html; charset=gb2312" %>
  2. <%@ page import="java.io.*" %>
  3. <%
  4. FileReader myFileReader=new FileReader("c:/哈哈.txt");
  5. BufferedReader myBufferedReader=new BufferedReader(myFileReader);
  6. String myString=null;
  7. String resultString=new String();
  8. while((myString=myBufferedReader.readLine())!=null) {
  9. resultString=resultString+myString+"
  10. ";
  11. }
  12. out.println(resultString);
  13. myFileReader.close();
  14. %>

对word文档的处理(上传与下载)

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

1,打开:
1)文件头上加:

  1. <%@ page  contentType="application/msword"%> 
  2.  
  3. xml文件里:
  4. <mime-mapping>
  5.         <extension>doc</extension>
  6.         <mime-type>application/msword</mime-type>
  7. </mime-mapping>

2)可以用js,以下代码来自引用:

<%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%>




 
2,下载:

  1. <%@ page contentType="text/html;charset=gb2312" import= "java.io.*"%>
  2. <%// 得到文件名字和路径
  3.   String filename = "jsp.doc";
  4.   String filepath = "C:\\";
  5.  
  6.   // 设置响应头和下载保存的文件名
  7.   response.setContentType("APPLICATION/OCTET-STREAM");
  8.   response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
  9.  
  10.   // 打开指定文件的流信息
  11.   java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);
  12.   //FileOutputStream out  = new FileOutputStream(filepath+"测试\\" + filename);
  13.   // 写出流信息
  14.   int i;
  15.   while ((i=fileInputStream.read()) != -1) {
  16.    out.write(i);
  17.   }
  18.   fileInputStream.close();
  19.   out.close()
  20.  %>
 

分享到:
评论

相关推荐

    Java软件开发中文件操作的研究与探析.pdf

    在文件操作中,顺序读写和随机读写是两种常见的读写方式。顺序读写是指从文件的开始位置逐步读取或写入数据,直到达到文件的结束位置。随机读写是指读写完上一个字节后,不仅能读写其后继的字节,还可以读写文件中的...

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    java文件操作类

    java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...

    java视频教程—Java文件操作

    java视频教程 Java文件操作 JavaFile

    java操作共享文件

    要使用SmbFile类,首先需要创建一个SmbFile对象,指定共享文件的URL,然后通过这个对象进行文件操作。以下是一个简单的示例,展示如何读取共享文件: ```java import jcifs.smb.SmbFile; import java.io....

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    java properties文件操作工具类,可追加修改

    此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作

    JAVA代码实现远程操作服务器文件

    Session是一个远程服务器文件操作的会话,可以实现文件的移动、复制、删除等操作。通过使用Session,可以实现远程服务器文件的操作。 6. 使用InputStream和BufferedReader实现命令执行结果的获取 InputStream和...

    java实现windows文件系统操作监控

    Java的`java.nio.file`包提供了丰富的文件操作接口,如`Files.setPosixFilePermissions()`和`Files.newFileChannel()`,可以用来设置权限和创建文件通道进行锁定。 7. **文件自动加密**:文件加密通常涉及对文件...

    Java 上传文件到 SharePoint

    首先,我们需要了解Java中用于文件操作的基本类,如`java.io.File`,它提供了创建、读取、写入和删除文件的方法。此外,为了与SharePoint交互,我们需要使用Microsoft提供的客户端对象模型(Client Object Model,...

    java 移动文件.

    Java 文件操作是 Java 编程语言中的一种基本操作,包括文件的移动、复制、删除、剪切等。下面是关于 Java 文件操作的知识点总结: 一、文件移动 文件移动是指将文件从一个目录下移到另一个目录下。在 Java 中,...

    java文件操作大全

    如何在Java中操作文件呢?转载供大家欣赏

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    java文件操作工具类

    java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。

    java通过文件头内容判断文件类型

    在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能...理解并掌握这个方法,能够帮助我们在实际开发中更好地处理各种文件操作,提高程序的健壮性和安全性。

    Java文件操作封装类

    Java文件操作封装类

    java文件读写操作

    这个文件里面包含了java的IO流对文件的操作和java通道加内存映射对文件操作的源码

    Java写入大数据文件

    在写入和切分文件操作完成后,程序使用singleFileDataSort方法将每个小文件的数据进行排序,以便后续的数据处理操作。最后,程序使用deathDataFile方法对十个小文件的数据进行比较和整合,以提高数据的精度和可靠性...

    java 分割文件 将大文件分割成小文件

    总结起来,Java提供了丰富的API来处理文件操作,包括分割大文件。通过结合`FileInputStream`、`FileOutputStream`以及适当的逻辑,我们可以根据文件大小或时间间隔来分割大文件。在实际开发中,应根据具体需求调整...

Global site tag (gtag.js) - Google Analytics