javaweb增删改查实例通讯录实现增改删查,将信息存入文本文件中

在java中怎样把联系人信息保存在文本文件中??源代码求修改_百度知道
在java中怎样把联系人信息保存在文本文件中??源代码求修改
我已经码好一部分代码 能实现缓存 但是想把信息保存在文本文件里不知道怎么弄 求大神相助~
我有更好的答案
BufferedWriter br =new BufferedWriter(new FileWriter(&路径.txt&)) ;
//路径名可改,txt可改为其他格式br.write(str) ;
//str为String类型的字符串 建议多看api文档,这是IO流中的两个类
采纳率:41%
File f=new File(&路径+名+后缀&);BufferedWriter br =new BufferedWriter(new FileWriter(f)) ; S(要保存的信息)
br.write(mes) ;br.flush();
亲 可以私聊吗~
用IO流 写数据
为您推荐:
其他类似问题
文本文件的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。java File文件的增,删,改,查
import java.io.BufferedR import java.io.F import java.io.FileInputS import java.io.FileOutputS import java.io.FileR import java.io.FileW import java.io.IOE import java.io.InputS import java.io.InputStreamR import java.io.OutputS import java.io.PrintW import java.io.RandomAccessF import java.net.HttpURLC import java.net.URL; import java.util.ArrayL import java.util.HashS import java.util.I import java.util.L import java.util.S import java.util.TreeS public class FileOperate { private static FileOperate instance = public static FileOperate getInstance() { if (instance == null) { instance = new FileOperate(); }
} public FileOperate(){ } /**
* 新建目录
* @param folderPath String 如 c:/fqf
* @return boolean
public static void newFolder(String folderPath) {
String filePath = folderP
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists()) {
myFilePath.mkdir();
catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();
* 新建文件
* @param filePathAndName String 文件路径及名称 如c:/text.txt
* @param fileContent String 文件内容
* @return boolean
public static void newFile(String filePathAndName, String fileContent) {
String filePath = filePathAndN
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists()) {
myFilePath.createNewFile();
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = fileC
myFile.println(strContent);
resultFile.close();
catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();
* 删除文件
* @param filePathAndName String 文件路径及名称 如c:/text.txt
* @param fileContent String
* @return boolean
public static void delFile(String filePathAndName) {
String filePath = filePathAndN
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();
* 删除文件夹
* @param filePathAndName String 文件夹路径及名称 如c:/text
* @param fileContent String
* @return boolean
public static void delFolder(String folderPath) {
delAllFile(folderPath); //删除完里面所有内容
String filePath = folderP
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹
catch (Exception e) {
System.out.println("删除文件夹操作出错");
e.printStackTrace();
* 删除文件夹里面的所有文件
* @param path String 文件夹路径 如 c:/text
public static void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
if (!file.isDirectory()) {
String[] tempList = file.list();
File temp =
for (int i = 0; i & tempList. i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
temp = new File(path + File.separator + tempList[i]);
if (temp.isFile()) {
temp.delete();
if (temp.isDirectory()) {
delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
delFolder(path+"/"+ tempList[i]);//再删除空文件夹
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/text.txt
* @param newPath String 复制后路径 如:f:/text.txt
* @return boolean
public static void copyFile(String oldPath, String newPath) {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
inStream.close();
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/text
* @param newPath String 复制后路径 如:f:/text/ff
* @return boolean
public static void copyFolder(String oldPath, String newPath) {
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=
for (int i = 0; i & file. i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
temp=new File(oldPath+File.separator+file[i]);
if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
output.flush();
output.close();
input.close();
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
* 移动文件到指定目录
* @param oldPath String 如:c:/text.txt
* @param newPath String 如:d:/text.txt
public static void moveFile(String oldPath, String newPath) {
copyFile(oldPath, newPath);
delFile(oldPath);
* 移动文件夹到指定目录
* @param oldPath String 如:c:/text.txt
* @param newPath String 如:d:/text.txt
public static void moveFolder(String oldPath, String newPath) {
copyFolder(oldPath, newPath);
delFolder(oldPath);
* 删除文件中特定内容(txt)
* @param filePath String 如:c:/text.txt
* @param delContent String 如:"123456"
public static void delFileConcent(String filePath,String delContent) {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String rowtxt =
List & String & list = new ArrayList & String & ();
while ((rowtxt = br.readLine()) != null) {
if (rowtxt != null && !"".equals(rowtxt) && !"null".equals(rowtxt)) {
rowtxt=rowtxt.replace(delContent, "");
list.add(rowtxt);
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists()) {
myFilePath.createNewFile();
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = "";
for(int i = 0;i & list.size(); i++){
strContent = list.get(i);
if(!"&&&*&&&".equals(strContent)){
myFile.println(strContent);
resultFile.close();
catch (Exception e) {
System.out.println("操作出错");
e.printStackTrace();
* 修改文件内容
* @param filePath 文件地址
* @param oldContent 修改前内容 String
* @param newContent 修改后内容 String
public static void updateFileConcent(String filePath,String oldContent,String newContent) {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String rowtxt =
while ((rowtxt = br.readLine()) != null) {
if (rowtxt != null && !"".equals(rowtxt) && !"null".equals(rowtxt)) {
rowtxt=rowtxt.replace(oldContent, newContent);
catch (Exception e) {
System.out.println("修改操作出错");
e.printStackTrace();
* 删除文件夹中文件(txt)
* @param folderPath String 如:c:/text
* @param delContent String 如:"123456"
public static void delFolderConcent(String folderPath,String delContent) {
File file=new File(folderPath);
if(file!=null){
if(file.isDirectory()){
File fi[]=file.listFiles();
if(fi!=null){
for(int i=0;i&fi.i++){
if(fi[i].isDirectory()){
delFolderConcent(folderPath, null);
RandomAccessFile
read=new RandomAccessFile(fi[i], "r");
String line1=read.readLine();
if(line1.indexOf(delContent)==-1){
fi[i].deleteOnExit();
System.out.println(line1);
read.close();
} catch (Exception e) {
System.out.println("操作出错");
e.printStackTrace();
System.out.println(file);
* 全级搜索文件列表
* @param Path 文件位置 如:F:\\text\\ * @return
public static List searchAllFile(String Path){
Set fileNameSet = FileOperate.searchFolder(Path);
// 符合条件的文件路径
List resultFile=new ArrayList();
TreeSet treeSet = new TreeSet(fileNameSet);
for(Iterator i = treeSet.iterator(); i.hasNext();) {
String filePath = i.next().toString();
filePath = filePath.replaceAll("\\\\", "\\\\\\\\");
resultFile.add(filePath);
return resultF
* 单级搜索文件列表
* @param folderPath 文件位置 如 F:\\text\\
public static HashSet searchFolder(String folderPath){
File file = new File(folderPath);
List fileList = listAllFiles(file);
HashSet fileName = new HashSet(fileList.size());
for(int i = 0; i & fileList.size();i++){
File file2 = (File) fileList.get(i);
boolean add = fileName.add(file2.getAbsolutePath());
return fileN
* 搜索文件子方法
* searchFolder 方法的附属方法
* @param directory
private static List listAllFiles(File directory) {
if(directory == null || !directory.isDirectory()) {
List fileList = new ArrayList();
addSubFileList(directory, fileList);
return fileL
* 搜索文件子方法
* searchFolder 方法的附属方法
* @param file
* @param fileList
private static void addSubFileList(File file, List fileList) {
File[] subFileArray = file.listFiles();
if(subFileArray == null || subFileArray.length == 0) {
for(int i = 0; i & subFileArray. i++) {
File subFile = subFileArray[i];
if(subFile == null) {
if(subFile.isFile()) {
fileList.add(subFile);
}else if(subFile.isDirectory()) {
addSubFileList(subFile, fileList);
* 全级搜索文件及内容列表p
* @param Path 文件位置 如:F:\\text\\ * @return
public static List searchAllFileAndContext(String Path){
String content = "";// 某个文件的内容
String encoding = "utf8";// 设置读取文件内容时的文件编码
Set fileNameSet = FileOperate.searchFolder(Path);
// 符合条件的文件路径
List resultFile=new ArrayList();
TreeSet treeSet = new TreeSet(fileNameSet);
for(Iterator i = treeSet.iterator(); i.hasNext();) {
String filePath = i.next().toString();
filePath = filePath.replaceAll("\\\\", "\\\\\\\\"); //
System.out.println(filePath);
String lastName = filePath.substring(filePath.lastIndexOf(".")+1);
if(lastName.indexOf("txt")!=-1){
content = SearchStr.readTxt(filePath, encoding);
System.out.println("文件里面的内容:"); //
System.out.println(content);
if(!"".equals(content)){
resultFile.add(filePath+"\n文件里面的内容:\n"+content);
resultFile.add(filePath);
}catch(IOException e) {
e.printStackTrace();
return resultF
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!简单通讯录(以数组的方式实现增删改查)
实现一个简单的通讯录
简单一点可以采用数组的方式来存储元素
首先给出结构体的定义:
typedef struct PeopleInfo {
char name[MAX_NAME];
char sex[MAX_SEX];
char phone[MAX_PHONE];
char addr[MAX_ADDR];
typedef struct Contact {
PeopleInfo con[MAX];
}Contact, *PCsize用于存储数组中的有效元素
头文件contact.h:
#ifndef __CONTACT_H__
#define __CONTACT_H__
#include &string.h&
#include &stdio.h&
#define MAX 1000
#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_PHONE 12
#define MAX_ADDR 30
typedef struct PeopleInfo {
char name[MAX_NAME];
char sex[MAX_SEX];
char phone[MAX_PHONE];
char addr[MAX_ADDR];
typedef struct Contact {
PeopleInfo con[MAX];
}Contact, *PC
void InitContact(PContact contact);
void AddContact(PContact contact);
void DelContact(PContact contact);
void DisplayContact(PContact contact);
void SearchContact(PContact contact);
void ModifyContact(PContact contact);
void EmptyContact(PContact contact);
具体实现:
#include "contact.h"
//typedef struct PeopleInfo {
// char name[MAX_NAME];
// char sex[MAX_SEX];
// char phone[MAX_PHONE];
// char addr[MAX_ADDR];
//}PeopleI
//typedef struct Contact {
// PeopleInfo con[MAX];
//}Contact, *PC
void InitContact(PContact contact)
contact-&size = 0;
memset(contact-&con, 0, MAX * sizeof(PeopleInfo));
void AddContact(PContact contact)
if (contact-&size == MAX) {
printf("电话本满了\n");
printf("please input the information:\n");
printf("name:");
scanf("%s", contact-&con[contact-&size].name);
printf("age:");
scanf("%d", &contact-&con[contact-&size].age);
printf("sex:");
scanf("%s", contact-&con[contact-&size].sex);
printf("phone:");
scanf("%s", contact-&con[contact-&size].phone);
printf("addr:");
scanf("%s", contact-&con[contact-&size].addr);
contact-&size++;
printf("增加成功\n");
static int FindEntry(PContact contact, const char *name)
int i = 0;
for (i = 0; i & contact-& ++i) {
if (strcmp(name, contact-&con[i].name) == 0)
return -1;
void DelContact(PContact contact)
if (contact-&size == 0)
printf("电话本已空\n");
char name[MAX_NAME] = { 0 };
printf("please input the name you wanna delete:");
scanf("%s", name);
int ret = FindEntry(contact, name);
if (-1 == ret) {
printf("找不到\n");
int i = 0;
for (i = i & contact-&size - 1; ++i) {
contact-&con[i] = contact-&con[i + 1];
contact-&size--;
printf("删除成功\n");
void SearchContact(PContact contact)
if (contact-&size == 0)
printf("电话本已空\n");
char name[MAX_NAME] = { 0 };
printf("please input the name you wanna search:");
scanf("%s", name);
int ret = FindEntry(contact, name);
if (-1 == ret) {
printf("找不到\n");
printf("%5s\t%5d\t%5s\t%10s\t%10s\n",
contact-&con[ret].name,
contact-&con[ret].age,
contact-&con[ret].sex,
contact-&con[ret].phone,
contact-&con[ret].addr);
void DisplayContact(PContact contact)
int i = 0;
printf("%5s\t%5s\t%5s\t%10s\t%10s\n", "name", "age", "sex", "phone", "addr");
for (i = 0; i & contact-& ++i) {
printf("%5s\t%5d\t%5s\t%10s\t%10s\n",
contact-&con[i].name,
contact-&con[i].age,
contact-&con[i].sex,
contact-&con[i].phone,
contact-&con[i].addr);
void ModifyContact(PContact contact)
if (contact-&size == 0)
printf("电话本已空\n");
char name[MAX_NAME] = { 0 };
printf("please input the name you wanna modify:");
scanf("%s", name);
int ret = FindEntry(contact, name);
if (-1 == ret) {
printf("找不到\n");
printf("please input the information:\n");
printf("name:");
scanf("%s", contact-&con[ret].name);
printf("age:");
scanf("%d", &contact-&con[ret].age);
printf("sex:");
scanf("%s", contact-&con[ret].sex);
printf("phone:");
scanf("%s", contact-&con[ret].phone);
printf("addr:");
scanf("%s", contact-&con[ret].addr);
printf("修改成功\n");
void EmptyContact(PContact contact)
contact-&size = 0;
#include &stdio.h&
#include &string.h&
#include "contact.h"
enum OPTION {
void menu();
int main()
int flag = 1;
Contact myC
InitContact(&myContact);
while (flag) {
int num = 0;
printf("please make a choice:");
scanf("%d", &num);
switch (num) {
case EXIT:
printf("exit\n");
AddContact(&myContact);
DelContact(&myContact);
case SEARCH:
SearchContact(&myContact);
case MODIFY:
ModifyContact(&myContact);
case DISPLAY:
DisplayContact(&myContact);
case EMPTY:
EmptyContact(&myContact);
printf("what you input is wrong\n");
getchar();
void menu()
printf("**********************\n");
printf("1.增加\t2.删除\t3.查找\n");
printf("4.修改\t5.显示\t6.置空\n");
printf("0.退出\n");
printf("**********************\n");
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!求JAVA课程设计一个~~弄一个通讯录,实现增加删除查找等功能,只能用IO(输入输出流),swing等类编写~~~_百度知道
求JAVA课程设计一个~~弄一个通讯录,实现增加删除查找等功能,只能用IO(输入输出流),swing等类编写~~~
很急的~~有的话就发个代码给我吧。感激不尽了~~
我有更好的答案
提供一个思路:定义一套文件头,其中有一个标识是用来表示该记录是否删除(逻辑删除用)添加的时候,每个记录就直接增加到文件最后。另外,每个记录都要定义好它的格式,可以参照数据库的原理,类似于字段的性质,可以用定长字段,然后有一个对照表。每次要查询哪个字段就可以找到它对应在每行的多少列到多少列,然后简单的把每行的N到M列拿出来组成string和需要比对的字符串进行compare就可以匹配了
采纳率:41%
代码还是有完整的啦java课设的程序都实现了功能
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class CobDemo extends JFrame implements ItemListener {
ImageIcon france, germany, italy,
super(&记录&);
setSize(300,200);setVisible(true);
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
JComboBox jc = new JComboBox();
jc.addItem(&a&);
jc.addItem(&b&);
jc.addItem(&c&);
jc.addItem(&d&);
jc.addItemListener(this);
contentPane.add(jc);
JCheckBox cb1 = new JCheckBox(&123456&);
JCheckBox cb2 = new JCheckBox(&1234567&);
JCheckBox cb3 = new JCheckBox(&&);
contentPane.add(jlb);
validate();
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}});
public void itemStateChanged(ItemEvent ie) {
String s = (String)ie.getItem().toString();
jlb.setIcon(new ImageIcon(s + &.jpg&));
public class Ex
public static void main(String args[])
new CobDemo();
莫非你是我认识的……心理LL?
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
java课程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
c 语言 通讯录 写入文本文件(含读取,删除某行,修改某行)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 java增删改查 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信