首页 > 编程语言 >java文件操作

java文件操作

时间:2023-09-20 12:06:39浏览次数:38  
标签:文件 fr java html br 操作 path out


Java.io.File类主要是完成了文件夹管理的命名、查询文件属性和处理目录等到操作它不进行文件夹内容的读取操作。以下描述了File类的主要常用方法。 
  File():构造函数,一般是依据文件所在的指定位置来创建文件对象。 
  CanWrite():返回文件是否可写。 
  CanRead():返回文件是否可读。 
  CompareTo(File pathname):检查指定文件路径间的顺序。 
  CreateNewFile():当文件不存在时生成空文件。 
  Delet():从文件系统内删除该文件。 
  DeleteOnExit():程序顺利结束时从系统中删除文件。 
  Equals(Object obj):检查特定对象的路径名是否相等。 
  Exists():判断文件夹是否存在。 
  GetAbsoluteFile():返回文件的完整路径。 
  GetAbsolutePath():返回文件的完整路径。 
  GetName():返回文件名称。 GetParent():返回文件父目录路径。 
  GetPath():返回文件的潜在相对路径。 
  GetParentFile():返回文件所在文件夹的路径。 
  HashCode():返回文件哈希码。 
  IsDirectory():判断该路径表示的是否为目录。 
  IsFile():判断该路径指示的是否是文件。 
  LastModified() :返回文件的最后修改时间标志。 
  Length():返回文件长度。 
  List():返回文件和目录清单。 
  Mkdir():生成指定的目录。 
  RenameTo(File dest):更名文件。 
  SetReadOnly():将文件设置为只读。 
  ToString():返回文件状态的字符串。 
  ToURL():将文件的路径字符串转换成URL。

java demo

import java.io.BufferedReader;  
import java.io.File;  
import java.io.FileReader;  
import java.io.FileWriter;  
import java.io.IOException;  
import java.io.PrintWriter;  
/**  
* @author zhangqinglin  
* To change the template for this generated type comment go to  
* Window>Preferences>Java>Code Generation>Code and Comments  
*/  
public class Files  
{  
public static void main(String[] args) throws IOException  
{  
Files f = new Files();  
// System.out.println(f.readFile("f:\\LinkFile.java"));  
// f.readAllFile("f:\\","LinkFile.java");  
// f.readLineFile("f:\\","LinkFile.java");  
// System.out.println(f.fileIsNull("f:\\","122.txt"));  
// f.readFolderByFile("F:\\PDF");  
// System.out.println(f.createAndDeleteFolder("ss","f:\\"));  
// System.out.println(f.createAndDeleteFile("f:\\ss\\","TestFile.dat"));  
String[] ss = new String[50];  
for(int i=0;i<ss.length;i++)  
{  
ss[i] = "信息技术和互联网(计算机软硬件,通讯) "+i;  
}  
f.writeFile("f:\\ss\\","TestFile.txt",ss);  
}  
/**  
* 文件的写入  
* @param filePath(文件路径)  
* @param fileName(文件名)  
* @param args[]  
* @throws IOException  
*/  
public void writeFile(String filePath,String fileName,String[] args) throws IOException  
{  
FileWriter fw = new FileWriter(filePath+fileName);  
PrintWriter out=new PrintWriter(fw);  
for(int i=0;i<args.length;i++)  
{  
out.write(args[i]);  
out.println();  
out.flush();  
}  
fw.close();  
out.close();  
}  
/**  
* 文件的写入  
* @param filePath(文件路径)  
* @param fileName(文件名)  
* @param args  
* @throws IOException  
*/  
public void writeFile(String filePath,String fileName,String args) throws IOException  
{  
FileWriter fw = new FileWriter(filePath+fileName);  
fw.write(args);  
fw.close();  
}  
/**  
* 创建与删除文件  
* @param filePath  
* @param fileName  
* @return 创建成功返回true  
* @throws IOException  
*/  
public boolean createAndDeleteFile(String filePath,String fileName) throws IOException  
{  
boolean result = false;  
File file = new File(filePath,fileName);  
if(file.exists())  
{  
file.delete();  
result = true;  
System.out.println("文件已经删除!");  
}  
else  
{  
file.createNewFile();  
result = true;  
System.out.println("文件已经创建!");  
}  
return result;  
}  
/**  
* 创建和删除目录  
* @param folderName  
* @param filePath  
* @return 删除成功返回true  
*/  
public boolean createAndDeleteFolder(String folderName,String filePath)  
{  
boolean result = false;  
try  
{  
File file = new File(filePath+folderName);  
if(file.exists())  
{  
file.delete();  
System.out.println("目录已经存在,已删除!");  
result = true;  
}  
else  
{  
file.mkdir();  
System.out.println("目录不存在,已经建立!");  
result = true;  
}  
}  
catch(Exception ex)  
{  
result = false;  
System.out.println("CreateAndDeleteFolder is error:"+ex);  
}  
return result;  
}  
/**  
* 输出目录中的所有文件及目录名字  
* @param filePath  
*/  
public void readFolderByFile(String filePath)  
{  
File file = new File(filePath);  
File[] tempFile = file.listFiles();  
for(int i = 0;i<tempFile.length;i++)  
{  
if(tempFile[i].isFile())  
{  
System.out.println("File : "+tempFile[i].getName());  
}  
if(tempFile[i].isDirectory())  
{  
System.out.println("Directory : "+tempFile[i].getName());  
}  
}  
}  
/**  
* 检查文件中是否为一个空  
* @param filePath  
* @param fileName  
* @return 为空返回true  
* @throws IOException  
*/  
public boolean fileIsNull(String filePath,String fileName) throws IOException  
{  
boolean result = false;  
FileReader fr = new FileReader(filePath+fileName);  
if(fr.read() == -1)  
{  
result = true;  
System.out.println(fileName+" 文件中没有数据!");  
}  
else  
{  
System.out.println(fileName+" 文件中有数据!");  
}  
fr.close();  
return result;  
}  
/**  
* 读取文件中的所有内容  
* @param filePath  
* @param fileName  
* @throws IOException  
*/  
public void readAllFile(String filePath,String fileName) throws IOException  
{  
FileReader fr = new FileReader(filePath+fileName);  
int count = fr.read();  
while(count != -1)  
{  
System.out.print((char)count);  
count = fr.read();  
if(count == 13)  
{  
fr.skip(1);  
}  
}  
fr.close();  
}  
/**  
* 一行一行的读取文件中的数据  
* @param filePath  
* @param fileName  
* @throws IOException  
*/  
public void readLineFile(String filePath,String fileName) throws IOException  
{  
FileReader fr = new FileReader(filePath+fileName);  
BufferedReader br = new BufferedReader(fr);  
String line = br.readLine();  
while(line != null)  
{  
System.out.println(line);  
line = br.readLine();  
}  
br.close();  
fr.close();  
}  
}

 

jsp demo

一行一行读取数据

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>文件读取</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("");//取得当前目录的路径 
FileReader fr=new FileReader(path + "\\file\\inc\\t.txt");//建立FileReader对象,并实例化为fr 
BufferedReader br=new BufferedReader(fr);//建立BufferedReader对象,并实例化为br 
String Line=br.readLine();//从文件读取一行字符串 
//判断读取到的字符串是否不为空 
while(Line!=null){ 
out.println(Line + "<br>");//输出从文件中读取的数据 
Line=br.readLine();//从文件中继续读取一行数据 
} 
br.close();//关闭BufferedReader对象 
fr.close();//关闭文件 
%> 
</body> 
</html>

 略过文件中的字符不读取 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>略过字节不读取</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("."); 
FileReader fr=new FileReader(path + "\\ReadData.txt"); 
fr.skip(2);//跳过2个字节 
int c=fr.read();//读取一个字节 
while(c!=-1){ 
out.print((char)c); 
c=fr.read(); 
} 
fr.close(); 
%> 
</body> 
</html>

 将数据写入文件 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>将数据写入文件</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("."); 
FileWriter fw=new FileWriter(path + "\\WriteData.txt");//建立FileWriter对象,并实例化fw 
//将字符串写入文件 
fw.write("大家好!"); 
fw.write("本书是《JSP编程技巧》"); 
fw.write("请多多指教!"); 
fw.write("email:[email protected]"); 
fw.close(); 

FileReader fr=new FileReader(path + "\\WriteData.txt"); 
BufferedReader br=new BufferedReader(fr);//建立BufferedReader对象,并实例化为br 
String Line=br.readLine(); 
//读取一行数据 
out.println(Line + "<br>"); 
br.close();//关闭BufferedReader对象 
fr.close(); 
%> 
</body> 
</html>

 将写入文件的数据分行 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>将写入文件的数据分行</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("."); 
FileWriter fw=new FileWriter(path + "\\WriteData.txt"); 
BufferedWriter bw=new BufferedWriter(fw); 
bw.write("大家好!"); 
bw.write("本书是《JSP编程技巧》。"); 
bw.newLine();//断行 
bw.write("请多多指教!"); 
bw.newLine();//断行 
bw.write("email: [email protected]"); 
bw.flush();//将数据更新至文件 
fw.close();//关闭文件流 
out.println("写入文件内容为:<br>"); 
FileReader fr=new FileReader(path + "\\WriteData.txt"); 
BufferedReader br=new BufferedReader(fr); 
String Line=br.readLine();//读取一行数据 
while(Line!=null){ 
out.println(Line + "<br>"); 
Line=br.readLine(); 
} 
fr.close(); 
%> 
</body> 
</html> 
如何将数据追加写入到文件 
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>将写入文件的数据分行</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("."); 
RandomAccessFile rf=new RandomAccessFile(path + "\\WriteData.txt","rw");//定义一个类RandomAccessFile的对象,并实例化 
rf.seek(rf.length());//将指针移动到文件末尾 
rf.writeBytes("\nAppend a line to the file!"); 
rf.close();//关闭文件流 
out.println("写入文件内容为:<br>"); 
FileReader fr=new FileReader(path + "\\WriteData.txt"); 
BufferedReader br=new BufferedReader(fr);//读取文件的BufferedRead对象 
String Line=br.readLine(); 
while(Line!=null){ 
out.println(Line + "<br>"); 
Line=br.readLine(); 
} 
fr.close();//关闭文件 
%> 
</body> 
</html>

 文件的建立/检查与删除 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>文件的建立、检查与删除</title> 
</head> 
<body> 
<% 
String path=request.getRealPath(""); 
//out.println(path); 
File f=new File(path,"File.txt"); 
//out.println(f); 
//out.println(f.exists()); 

if(f.exists()){//检查File.txt是否存在 
f.delete();//删除File.txt文件 
out.println(path + "\\File.txt 存在,已删除。"); 
}else{ 
f.createNewFile();//在当前目录下建立一个名为File.txt的文件 
out.println(path + "\\File.txt 不存在,已建立。");//输出目前所在的目录路径 
} 
%>

 目录的建立/检查与删除 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>目录的建立/检查与删除</title> 
</head> 
<body> 
<% 
String path=request.getRealPath(""); 
path=path + "\\Sub";//将要建立的目录路径 
File d=new File(path);//建立代表Sub目录的File对象,并得到它的一个引用 
if(d.exists()){//检查Sub目录是否存在 
d.delete(); 
out.println("Sub目录存在,已删除"); 
}else{ 
d.mkdir();//建立Sub目录 
out.println("Sub目录不存在,已建立"); 
} 
%> 
</body> 
</html>

 如何在JSP中处理虚拟目录 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>JSP中如何处理虚拟目录</title> 
</head> 
<body> 
取得虚拟目录对应的磁盘路径<br> 
Web站点主目录的位置为<font color=#ff0000><%=request.getRealPath("/")%></font><br> 
JSP网页所在的目录位置<font color=#ff0000><%=request.getRealPath("./")%></font><br> 
JSP网页所在目录上一层目录的位置<font color=#ff0000><%=request.getRealPath("../")%></font><br> 
</body> 
</html>

 文件属性的取得 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.util.Date,java.io.*"%> 
<html> 
<head> 
<title>文件属性的取得</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("/"); 
File f=new File(path,"ReadData.txt"); 
if(f.exists()){ 
%> 
<%=f.getName()%>的属性如下:<br><br> 
文件长度为:<%=f.length()%> 
<%=f.isFile()?"是文件":"不是文件"%><br> 
<%=f.isDirectory()?"是目录":"不是目录"%><br> 
<%=f.canRead()?"可读取":"不可读取"%><br> 
<%=f.canWrite()?"可写入":"不可写入"%><br> 
<%=f.isHidden()?"是隐藏文件":"不是隐藏文件"%><br> 
文件的最后修改日期为:<%=new Date(f.lastModified())%><br> 
<% 
}else{ 
f.createNewFile();//在当前目录下建立一个名为ReaData.txt的文件 
%> 
<%=f.getName()%>的属性如下:<br><br> 
文件长度为:<%=f.length()%> 
<%=f.isFile()?"是文件":"不是文件"%><br> 
<%=f.isDirectory()?"是目录":"不是目录"%><br> 
<%=f.canRead()?"可读取":"不可读取"%><br> 
<%=f.canWrite()?"可写入":"不可写入"%><br> 
<%=f.isHidden()?"是隐藏文件":"不是隐藏文件"%><br> 
文件的最后修改日期为:<%=new Date(f.lastModified())%><br> 
<% 
} 
%> 
</body> 
</html>

 取出目录中文件的方法 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>取出目录中文件的方法--列出目录中的文件</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("/"); 
File d=new File(path);//建立当前目录中文件的File对象 
File list[]=d.listFiles();//取得代表目录中所有文件的File对象数组 
out.println("<font color=#ff0000>" + path + "目录下的文件:</font><br>"); 
for(int i=0;i<list.length;i++){ 
if(list<I>.isFile()){ 
out.println(list<I>.getName() + "<br>"); 
} 
} 
out.println("<br><font color=#ff0000>" + path + "目录下的目录:</font><br>"); 
for(int i=0;i<list.length;i++){ 
if(list<I>.isDirectory()){ 
out.println(list<I>.getName() + "<br>"); 
} 
} 
%> 
</body> 
</html>

 判断是否为空白文件 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*"%> 
<html> 
<head> 
<title>判断是否为空白文件</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("/"); 
out.println(path); 
FileReader fr=new FileReader(path + "\\AtEnd.txt");//建立FileReader对象,并实例化为fr 
//对FileReader类生成的对象使用read()方法,可以从字符流中读取下一个字符。 
if(fr.read()==-1)//判断是否已读到文件的结尾 
{ 
out.print("AtEnd.txt文件中没有数据<br>"); 
}else{ 
out.println("AtEnd.txt文件中有数据"); 
} 
fr.close(); 
%> 
</body> 
</html>

 读取所有的文件数据 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*,java.lang.*"%> 
<html> 
<head> 
<title>读取所有的文件数据</title> 
</head> 
<body> 
<% 
String path=request.getRealPath("."); 
FileReader fr=new FileReader(path + "\\ReadData.txt"); 
//关键在于读取过程中,要判断所读取的字符是否已经到了文件的末尾,并且这个字符是不是文件中的断行符,即判断该字符值是否为13。 
int c=fr.read();//从文件中读取一个字符 
//判断是否已读到文件结尾 
while(c!=-1){ 
out.print((char)c);//输出读到的数据 
c=fr.read();//从文件中继续读取数据 
if(c==13){//判断是否为断行字符 
out.print("<br>");//输出分行标签 
fr.skip(1);//略过一个字符 
//c=fr.read();//读取一个字符 
} 
} 
fr.close(); 
%> 
</body> 
</html>

  

标签:文件,fr,java,html,br,操作,path,out
From: https://blog.51cto.com/u_16255870/7535803

相关文章

  • 实现mapreduce多文件自定义输出
     普通maprduce中通常是有map和reduce两个阶段,在不做设置的情况下,计算结果会以part-000*输出成多个文件,并且输出的文件数量和reduce数量一样,文件内容格式也不能随心所欲。这样不利于后续结果处理。如果只是想做到输出结果的文件名可控,实现自己的LogNameMultipleTextOutputFormat类,......
  • java.lang.IllegalArgumentException: Malformed \uxxxx encoding — 记一次mvnDebug
    本文唯一发布网站博客园(官网地址:https://www.cnblogs.com/)本文地址:https://www.cnblogs.com/zeromi/p/17716933.html前情提要有天需要写个东西,需要翻一下老代码,使用idea打开一个很久没打开的项目,然后不知道为啥到处飘红在查看了项目的ExternalLabraries列表,发现包都有,再看......
  • 大文件上传如何做断点续传?
    是什么不管怎样简单的需求,在量级达到一定层次时,都会变得异常复杂文件上传简单,文件变大就复杂上传大文件时,以下几个变量会影响我们的用户体验服务器处理数据的能力请求超时网络波动上传时间会变长,高频次文件上传失败,失败后又需要重新上传等等为了解决上述问题,我们需要对大文件......
  • odoo中在一个模块下修改另一个模块中的视图文件(新增一个字段)
     下面的代码,可以在一个模块中,修改另一个视图的内容,这里是新增一个字段,即:下图中的字段:my_field 固定部分:- <record id="view_order_form_inherit_my_module" model="ir.ui.view">:这是定义一个新的记录的开始标签。model="ir.ui.view"表示这个记录的模型是ir.ui.view,这是O......
  • Jmeter5.4参数化上传文件提示系统找不到指定的文件的解决方法
    问题:java.io.FileNotFoundException:D:\A_JFKJ\A_a项目资料\1_20230906国家教育考试指挥系统V2.10\测试数据\报名_编排_考场对应\${username}-报名.xlsx(系统找不到指定的文件。) 解决方法:在文件路径${}参数化内容前方加反斜杠“\”即可解决  ......
  • mysql数据库数据的基本查询操作
    基本查询语句:select[all|distinct]字段或表达式列表[from子句][where子句][groupby子句][having子句][orderby子句][limit子句];表达式列表中的条件语句顺序不能乱,from:数据来源,表示数据来源于哪张表,例句:select*fromstudent(student是表名);where:条件字句,可连接运算符,结......
  • java代码访问网页
    importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.net.URL;importjava.net.HttpURLConnection;publicclassWebPageAccess{publicstaticvoidmain(String[]args){Stringurl="http://example.com";//输入要访......
  • Java 21 新特性:switch的模式匹配
    在之前的Java17新特性中,我们介绍过关于JEP406:switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在JDK18、JDK19、JDK20中又都进行了更新和完善。如今,在JDK21中,该特性得到了最终确定!下面,我们就再正式学习一下该功能!在以往的switch语句中,对于case中的类型匹配限......
  • 智能塔机远程操作仿真系统技术研究@Like
      智能塔机远程操作仿真系统技术研究@Like 二〇xx年一月 目录1.概述1.1.背景1.2.目前问题1.3.方案介绍1.4.研制内容2.技术指标2.1.引用标准2.2.指标参数3.需求分析3.1.功能要求3.1.1.基本功能3.1.2.进阶要求3.2.装备分析4.设计方案4.1.系......
  • java在try-catch-finally代码块中return或者throw Exception时需注意的问题
    在Java的try-catch-finally代码块中使用return或者throwException时,需要注意以下几个问题:1.Return语句的执行:当在try或catch中使用return语句时,程序会立即退出当前方法并返回指定的值。但是在执行return之前,finally代码块将被执行。如果finally中也包含retur......