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

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

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

新建目录

//String URL = request.getRequestURI();

String filePath="C:\\测试\\";

filePath=filePath.toString();//中文转换

java.io.File myFilePath=new java.io.File(filePath);

if(!myFilePath.exists())

myFilePath.mkdir();

%>

新建文件

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();

%>

删除文件

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+"该文件不存在");

}

%>

文件拷贝

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("

"+byteread+"");

bytesum+=byteread;

out.println(bytesum);

fs.write(buffer,0,byteread);

}

inStream.close();

%>

整个文件夹拷贝

String url2="d:/java/";

(new File(url2)).mkdirs();

File[] file=(new File(url1)).listFiles();

for(int i=0;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();

}

}

%>

文件下载

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();

%>

数据库字段中的文件下载

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());

}

}

%>

把网页保存成文件

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);

}

}

%>

直接下载网上的文件

int bytesum=0;

int byteread=0;

URL url = new URL("

byte[] buffer =new byte[1444];

while ((byteread=inStream.read(buffer))!=-1)

{

out.println("

"+byteread+"");

bytesum+=byteread;

//System.out.println(bytesum);

fs.write(buffer,0,byteread);

}

%>

按行读文件

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+"
";

}

out.println(resultString);

myFileReader.close();

%>

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

response.setHeader("Content-disposition","inline; filename=test1.doc"); //线上浏览方式

// response.setHeader("Content-disposition","attachment; filename=test1.doc");//下载方式

//以上这行设定传送到前端浏览器时的档名为test1.doc

//就是靠这一行,让前端浏览器以为接收到一个word档

%>

//然后输出动态内容就可以得到一个word文档了

1,打开:

1)文件头上加:

xml文件里:

doc

application/msword

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

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

2,下载:

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类库对各种文件的操作详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合集 | 我在传统行业做数字化转型

在过去的两年时间里,Edison加入了一家传统行业的家装企业参与了其从0到1的数字化转型的过程,我将其整个过程中的感受与体会记录成了一些文章,分享与你。1我在传统行业做数字化转型(1)预告篇这篇主要会介绍一下数字化转…

第十周项目1-程序填空与阅读(一)

问题1-阅读下面的程序,在____上填上合适的成份,使程序能够输入“12”形式的式子,并输出相应的结果。 输入switch(oper) /**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称:temp.cpp*作者:邵帅*完…

有关EnableQ在线问卷调查引擎的记者访谈记录

经过近2年来的持续努力,EnableQ已经成为在线调查问卷领域的国内领导品牌。今EnableQ核心开发团队接受记者访问,以下是访谈的部分记录。记者:当初出于什么想法要开发像EnableQ这样专业的软件产品?是因为什么契机,还是有…

33种化学原理动图, 让你秒懂化学反应原理!

全世界只有3.14 % 的人关注了爆炸吧知识化学的神奇魅力可是不是随便说说的,神奇起来让人叹为观止。下面37张动图,在带领你领略化学之美的同时,也希望能帮助你理解这些化学现象。1 . 硫氰酸汞分解(“法老之蛇”)原理&am…

sql 计算 某字段 不同值出现 的次数_教你如何合理选用和计算电线规格,电线回路分配和注意事项...

电工是装修中非常重要的隐藏工程,其涉及的每一个细节都是不容忽视的,选用电线更是责任重大,如果使用的电线配置不合理或者用劣质电线,就存在发生电气火灾的隐患。因此,根据不同场所要进行合理选择和使用。一&#xff1…

c# 计算地球上两点间距离

地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。如果以0度经线为基准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离。获取…

matlab自带kpca,求对矩阵进行PCA或者KPCA特征提取的matlab代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是gabor的代码imimread(G:\pictureROI\why1.jpg);A[];B[];%A,B是空矩阵,初始化,清零。scale5; % denote the scale of the gabor wavelet表示gabor小波的尺度orientation4; % denote the orientation of t…

net读取exchange数据

大部分的参考是来自MSDN: http://msdn.microsoft.com/en-us/library/exchangewebservices(EXCHG.80).aspx 2007版的Exchange服务器提供了webservice,我们可以方便的在.NET程序中添加该引用,然后就可以方便的实现邮件的抓取,发送…

第十周项目1-程序填充与阅读(三)

/**Copyright (c) 2014,烟台大学计算机学院*All gight reserved.*文件名称&#xff1a;temp.cpp*作者&#xff1a;邵帅*完成时间&#xff1a;2014年10月30日*版本号&#xff1a;v1.0 */ #include <iostream> #include <cstdio> using namespace std; int main( ) {…

20以内究竟包不包括20?

全世界只有3.14 % 的人关注了爆炸吧知识本文转载自微信公众号一只学霸&#xff08;ID&#xff1a;bajie203&#xff09;学霸今天要问你们一个问题起初我看到微博上讨论这个的时候我觉得这个问题挺智障的然后点开评论一看……Wtf居然两个评论完全相反&#xff1f;&#xff1f;再…

MySql优化 (2009-08-28 系统架构师大会) 演讲ppt

在线查看地址 http://www.slideshare.net/secret/IzjEa4qGWlMeLH

python3默认的代码编码是什么-Python3 到底什么是字符编码

我之前老是有这种感觉, 就是明明已经看过很多关于字符编码的资料了, 感觉字符编码相关的知识点不难理解, 觉得自己已经把字符编码给弄懂了, 但当别人问我到底什么是字符编码, Unicode是什么啊, UTF-8又是什么的时候, 我又结结巴巴的说不清楚, 或者只能给个含糊不清的回答, 老是…

matlab生成有向网络,matlab ode45和矩阵生成有向网络图

Matlab中解常微分方程的ode45ode是专门用于解微分方程的功能函数&#xff0c;他有ode23,ode45,ode23s等等&#xff0c;采用的是Runge-Kutta算法。ode45表示采用四阶&#xff0c;五阶runge-kutta单步算法,截断误差为(Δx)^3。解决的是Nonstiff(非刚性)的常微分方程.是解决数值解…

一篇文章带你分清楚JWT,JWS与JWE

随着移动互联网的兴起&#xff0c;传统基于session/cookie的web网站认证方式转变为了基于OAuth2等开放授权协议的单点登录模式&#xff08;SSO&#xff09;&#xff0c;相应的基于服务器session浏览器cookie的Auth手段也发生了转变&#xff0c;Json Web Token出现成为了当前的热…

VMware linux 在2.4.20-8 中编译2.6.15.5 内核

软件准备&#xff1a; gcc-3.2.2-5.i386.rpm &#xff1a;用来编译 ncurses-5.6.tar.gz&#xff1a;用来配合make menuconfig 命令配置内核 bison-2.4.tar.gz &#xff1a;语法解析器 flex-2.5.35.tar.bz2 &#xff1a;词法解析器 m4-1.4.9.tar.gz&#xff1a; modutils-2.4.…

这五大基础原理,总是牛逼的无话可说

▲ 点击查看关于这几年很火的STEM教育理念&#xff0c;相信大家早就不陌生了。之前小木推荐读的这类读物&#xff0c;一般都是加上艺术&#xff08;ART&#xff09;的STEAM的5大学科。但是最近小木发现了这套以4大主要学科为主的《英国儿童经典STEM丛书》&#xff0c;不但有艺术…

ymPrompt.js消息提示组件

详细说明&#xff1a; http://www.ajaxbbs.net/test/ymPrompt4.0/demo.html 1、在页面中引入ymPrompt.js。如&#xff1a;<script type"text/javascript" src"ymPrompt.js"></script> 2、在页面中引入对应的皮肤文件的CSS&#xff0c;如&…

androidstudio学习总结_Android 开发工程师自述:2年的开发,我总结了7条经验

全文共3547字&#xff0c;预计学习时长11分钟“纸上得来终觉浅&#xff0c;绝知此事要躬行。”“没有调查就没有发言权。”“实践出真知。”古今中外&#xff0c;无数名言警句都告诉我们实际去做一件事的重要性。笔者从最初对安卓开发萌生兴趣到现在已有两年之久了&#xff0c;…

php抓取统计局区划代码,抓取国家统计局的代码和名称,爬取,区域,划分,及

from bs4 import BeautifulSoupimport pandas as pdimport requestsheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}获取一级代码、名称、下一级链接通过设置参数originUrl来调…

XMPP聊天之Openfire 的安装和配置---Mac OS

2019独角兽企业重金招聘Python工程师标准>>> 一、下载并安装openfire 1、下载最新的openfire安装文件 官方下载站点&#xff1a;http://www.igniterealtime.org/downloads/index.jsp#openfire openfire是服务器&#xff0c;下面还有一个spark&#xff0c;这个是一…