`

Java利用io类库对各种文件的操作详解

    博客分类:
  • JAVA
阅读更多
Java中文网 - Java利用io类库对各种文件的操作详解

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

新建目录
<%@ page contentType="text/html;CHARSET=gbk"%>
<%
//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=gbk"%>
<%@ 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=gbk"%>
<%
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=gbk" %>
<%@ 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=gbk"%>
<%@ 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.isFile()){
file.toString();
FileInputStream input=new FileInputStream(file);
FileOutputStream output=new FileOutputStream(url2+"/"+(file.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=gbk"%>
<%@ 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=gbk"%>
<%@ 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=gbk");
}
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=gbk"%>
<%@ page import="java.text.*,java.util.*,java.net.*,java.io.*"%>
<%
URL stdURL = null;
BufferedReader stdIn = null;
PrintWriter stdOut = null;
try {
stdURL = new URL("<A href="http://www.163.com">http://www.163.com</A>");
}
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=gbk"%>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%
int bytesum=0;
int byteread=0;
URL url = new URL("<A href="/UserFiles/2006-12/27/20061227131047684.gif</A>");
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=gbk" %>
<%@ 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=gbk" 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=gbk" 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();
%>

本文出自java 中文网(http://www.javaweb.cc/) -Java利用io类库对各种文件的操作详解

分享到:
评论

相关推荐

    Java 的 IO 类库的基本架构

    ### Java的IO类库基本架构详解 #### 一、引言 Java的I/O类库是程序员处理输入输出操作的基础工具。随着数据量的不断增长和技术的发展,Java也在不断优化其I/O处理能力,比如引入NIO(New I/O)等技术。本文将详细...

    java2 sdk 类库详解(pdf)

    在阅读《JAVA2 SDK 类库详解(PDF)》这份文档时,开发者可以期待对这些核心库有更深入的理解,掌握如何有效地利用Java SDK中的类库来提高开发效率和代码质量。同时,这份文档可能还会涵盖一些高级主题,如内存...

    c、c++、java标准类库+mfc类库详解+Win32API大全 中文版 chm文件

    比如,`java.util.ArrayList`是一个动态数组,`java.io.File`类用于文件操作,`java.net.Socket`用于网络通信。 MFC(Microsoft Foundation Classes)是微软提供的一个C++类库,用于构建Windows应用程序。它封装了...

    JAVA2 SDK 类库详解

    这个PDF文档“JAVA2 SDK 类库详解”很可能包含了对JDK 1.2中的核心API、工具和其他关键特性的详细解释。 在Java 2 SDK中,类库是一个关键组成部分,它包括了大量的预定义类和接口,这些都封装了各种功能,使开发者...

    JAVA2 SDK类库详解

    **JAVA2 SDK类库详解** Java 2 Software Development Kit(SDK)是开发和运行Java应用程序的基础,它包含了大量的工具和类库,使得开发者能够利用Java的强大功能构建跨平台的应用程序。这个PDF电子书版本虽然可能...

    java核心类库使用大全

    通过深入学习这份“java核心类库使用大全”,开发者不仅能掌握Java的基本语法,还能对Java平台提供的强大功能有深入的理解,从而更好地利用这些类库来解决实际问题。无论你是初学者还是经验丰富的开发者,这个资源都...

    Java2 类库详解

    Java2 类库详解 在Java编程领域,Java2 类库,也称为Java 2 Platform (J2SE),是Java开发的基础。它包含了丰富的API(应用程序接口),为开发者提供了构建复杂应用所需的各种工具和服务。Java2类库是Java的核心组成...

    JAVA2 SDK 类库详解(pdf格式)

    通过《JAVA2 SDK 类库详解》这本书,读者不仅能了解到JAVA类库的结构和使用方法,还能学习到如何有效地利用这些类库来解决实际问题。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,进一步提升自己的JAVA编程...

    java2 sdk 类库详解.rar

    这个压缩包文件"java2 sdk 类库详解.rar"很显然是提供了一份关于Java 2 SDK类库的详细指南,对于学习和理解Java开发至关重要。下面将深入探讨Java 2 SDK中的关键知识点。 1. **JVM(Java虚拟机)**:Java 2 SDK中的...

    JAVA2 SDK类库详解(中文)

    这个压缩包文件"JAVA2 SDK类库详解(中文)"提供了一份详细的中文指南,旨在帮助Java开发者深入理解和应用Java 2 SDK中的类库。这份资料书对初学者和经验丰富的开发者来说都是一份宝贵的资源。 在Java 2 SDK中,...

    java类库详解PDF格式的

    Java 的 I/O API 支持对数据的读写操作,对于处理文件、网络通信、数据持久化等场景至关重要。 3. **数字和逻辑操作**: - 数字如 `51.pdf`、`34.pdf`、`41.pdf`、`44.pdf`、`47.pdf` 可能代表不同的章节编号,...

    java 2类库3

    【Java 2 类库3详解】 Java 2 类库,也称为 Java Standard Edition (Java SE) 的一部分,是Java编程语言的核心组件,包含了丰富的API(应用程序接口)供开发者使用。这些API涵盖了各种功能,从基本的数据类型和控制...

    Java2_类库 and Java2语言命令详解

    3. **IO流**:`java.io`包提供了输入/输出流,支持文件操作和网络通信,如`FileInputStream`和`PrintWriter`。 4. **网络编程**:`java.net`包包含用于网络编程的类,如`Socket`和`ServerSocket`,可以创建客户端和...

    java SDK 类库详解

    - **java.io**:处理输入输出操作,包括文件操作、流处理等。 - **java.net**:处理网络通信,如Socket编程、URL访问等。 - **java.nio**:非阻塞I/O,提供了更高效的I/O操作方式。 - **java.concurrent**:多...

    《JAVA2 SDK 类库详解》

    《JAVA2 SDK 类库详解》是一本专注于Java 2 Software Development Kit (SDK) 的深入解析书籍,涵盖了Java编程的核心概念和技术。这本书旨在帮助开发者全面理解Java SDK中的类库,包括其设计原理、功能特性和使用方法...

    Java教程之javaIO详解

    Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File 类 File 类是 ...

    java常用类库手册

    - **java.io**:提供了通过数据流、对象序列化以及文件系统实现的系统输入/输出。 - **java.lang.\***:Java编程语言的基本类库。 - **java.math.\***:提供了整数算术和十进制算术的基本函数。 - **java.rmi**:...

Global site tag (gtag.js) - Google Analytics