java 删除文件中的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 删除文件中的数据相关的知识,希望对你有一定的参考价值。
有一个已经存在的文本文件存放了一系列学生的记录,如何从文件中删除指定学号的学生记录
1、如果只是想要文件中的内容,可以使用如下代码:
2、如果是想要文件夹中的内容,可以使用如下代码:
package com.xx;import java.io.File;
public class Test
public static void main(String[] args)
String fileRoot = "C:/Users/xx/Desktop/xx/xxx";
delFolder(fileRoot);
System.out.println("deleted");
// // 删除完文件后删除文件夹
// // param folderPath 文件夹完整绝对路径
public static void delFolder(String folderPath)
try
delAllFile(folderPath); // 删除完里面所有内容
//不想删除文佳夹隐藏下面
// String filePath = folderPath;
// filePath = filePath.toString();
// java.io.File myFilePath = new java.io.File(filePath);
// myFilePath.delete(); // 删除空文件夹
catch (Exception e)
e.printStackTrace();
// 删除指定文件夹下所有文件
// param path 文件夹完整绝对路径
public static boolean delAllFile(String path)
boolean flag = false;
File file = new File(path);
if (!file.exists())
return flag;
if (!file.isDirectory())
return flag;
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++)
if (path.endsWith(File.separator))
temp = new File(path + tempList[i]);
else
temp = new File(path + File.separator + tempList[i]);
if (temp.isFile())
temp.delete();
if (temp.isDirectory())
delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
// delFolder(path + "/" + tempList[i]);// 再删除空文件夹
flag = true;
return flag;
参考技术A java中的读文件和写文件需要使用读入流和输出流,你可以先读取文件的内容,在读取过程中过滤掉要删除的学生记录,然后在把内存中的文件内容在写回文件本回答被提问者采纳 参考技术B java删除文件内容只有一种实现方法,就是把整个文件重写,只是把哪一条记录去除掉 参考技术C 我这里有一个类似的例子,不过太多了,我发一部分出来,这上面有几个方法,其中有删除了,不是学生,是定单的, (先将数据读出来,然后删掉相应的信息,再写入新建的同名文件)
我有个学的生,只做的浏览功能
如果要的话给我发个信息
package computeOrder;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Vector;
import javax.swing.JOptionPane;
public class OrderList implements Path
private static File file=new File(FILEDIR,FILENAME);
//浏览:
public static void listAllOrder()
List<Order> list=new Vector<Order>();
list=WriteAndRead.read();
for(Order order:list)
System.out.println(order.toString());
//添加:
public static void addOrder(Order order)
WriteAndRead.Write(order);
//按用户信息进行查询:
public static void research(String customName)
List<Order> list=new Vector<Order>();
list=WriteAndRead.read();
boolean flag=true;
for(Order order:list)
if(order.getCustom().getCustomName().equals(customName))
System.out.println(order.toString());
flag=false;
break;
if(flag)
System.out.println("没有与之相匹配的订单: ");
// 按用户信息进行修改:
public static void modify(String customName)
List<Order> list = new Vector<Order>();
list = WriteAndRead.read();
boolean flag = true;
// JOptionPane.showMessageDialog(null, "目前只能修改用户名与用户等级: ");
for (int i=0;i<list.size();i++)
if (list.get(i).getCustom().getCustomName().equals(customName))
Order or = null;
flag = false;
// System.out.println(list.indexOf(order));
try
or = list.get(i);
or=ModifyInfo.modfityInfo(or);
// while(true)
// String str=Tools.getMessageFromKeyBoard("请输入要修改的信息: ");
// if(str.equals("用户姓名"))
// or.getCustom().setCustomName(Tools.getMessageFromKeyBoard("请输入姓名: "));
// System.out.println("继续修改请输入Y");
// if(Tools.getMessageFromKeyBoard(" ").trim().charAt(0)=='Y')
// else
// break;
//
//
//
// if(str.equals("用户等级"))
// or.getCustom().setCustomType(Tools.getMessageFromKeyBoard("请输入等级: "));
// System.out.println("继续修改请输入Y");
// if(Tools.getMessageFromKeyBoard(" ").trim().charAt(0)=='Y')
// else
// break;
//
//
//
list.remove(i);
list.add(i, or);
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
if (flag)
System.out.println("没有与之相匹配的订单: ");
// System.out.println("OK?");
file.delete();
if (file.exists())
System.out.println("删除失败: ");
// System.out.println("OK");
for (Order order : list)
WriteAndRead.Write(order);
//按用户信息进行删除:
public static void delete(String customName)
List<Order> list = new Vector<Order>();
list = WriteAndRead.read();
boolean flag = true;
for(int i=0;i<list.size();i++)
if (list.get(i).getCustom().getCustomName().equals(customName))
System.out.println(list.indexOf(list.get(i)));
list.remove(list.get(i));
flag=false;
//***发现严重问题,用List在这里如果用for——each循环,会倒致移除失败:*****
if (flag)
System.out.println("没有与之相匹配的订单: ");
file.delete();
if(file.exists())
System.out.println("删除失败: ");
for(Order order: list)
WriteAndRead.Write(order);
Java怎么清除缓存
某系统 一些内容是放在缓存中的 很大一部分都是异步的 EXTJS UI 点击退出的时候如果不清空 缓存点击后退还能进行信息的修改 请问怎么办 才能清除缓存 谢谢
通过 Java 控制面板删除临时文件
在 Java 控制面板的常规选项卡下,单击“临时 Internet 文件”部分下的设置。
此时将显示临时文件设置对话框。
在“临时文件设置”对话框上单击删除文件。
此时将显示删除文件和应用程序对话框。
在删除文件和应用程序对话框上单击确定。这将从高速缓存中删除所有下载的应用程序和小应用程序。
在临时文件设置对话框上单击确定。如果要从高速缓存中删除特定的应用程序和小应用程序,请分别单击“查看应用程序”和“查看小应用程序”选项。
http://wenku.baidu.com/view/0676f86648d7c1c708a14517.html
这个里面有一些清理缓存的方法可以看看。然后自己设置一下就ok了 参考技术B 软件设置中有清除缓存的选项。 参考技术C 楼上说得是对的,这跟缓存没关系,是你程序考虑不够完善。 参考技术D java自带垃圾处理器,
以上是关于java 删除文件中的数据的主要内容,如果未能解决你的问题,请参考以下文章