关于修改文本内容的问题,代码异常,求大侠帮忙改

软件遇见 2013-07-25 08:50:24
package com.soft.flie;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Scanner;

public class File {
public void rw()
{
try
{
FileWriter fw = new FileWriter("d:/b.txt",true);
BufferedWriter bw =new BufferedWriter(fw);

String s="";
Scanner in = new Scanner(System.in);
while(true)
{
System.out.println("输入数据:");
int id = in.nextInt();
if( id!= 0){
s = in.next();
int age = in.nextInt();
String sex = in.next();
bw.write("编号: "+id+" 姓名: "+s+" 年龄: "+age+" 性别: "+sex);
bw.newLine();
}
else
{
break;
}
}
bw.flush();
bw.close();
fw.close();
FileReader fr = new FileReader("d:/b.txt");
BufferedReader br = new BufferedReader(fr);
ArrayList<String> list = new ArrayList<String>();
String str;
while(!((str=br.readLine())==null))
{
System.out.println(str);
list.add(str);
}
System.out.println("请输入要修改的编号:");
String b = in.next();
int size = list.size();
int update = 0;
for(int i=0;i<size;i++)
{
String content = list.get(i);

String idd[] = content.split(" ");
for(int j=0;j<idd.length;j++)
{
System.out.println(idd[j]);
}
//String iddd = idd[j];
if(b.equals(idd[1]))//从此处抛出异常
update=i;
else
System.out.println("没找到");

}
System.out.println("请修改内容:");
String con = in.next();
list.set(update, con);
FileWriter fw1 = new FileWriter("d:/b.txt");
BufferedWriter bw1 =new BufferedWriter(fw1);
int len = list.size();
for(int i=0;i<len;i++)
{
bw1.write(list.get(i));
bw1.newLine();
bw1.flush();
}
fw1.close();
bw1.close();
FileReader fr1 = new FileReader("d:/b.txt");
BufferedReader br1= new BufferedReader(fr1);
ArrayList<String> list1 = new ArrayList<String>();
String str1;
while(!((str1=br1.readLine())==null))
{
System.out.println(str1);
}


}catch(Exception e)
{
e.printStackTrace();
}

}

}
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
软件遇见 2013-07-26
  • 打赏
  • 举报
回复
我知道了,if(b.equals(idd[1]))//从此处抛出异常,如果b的长度小于等于1,就会数组越界,再请教个问题,怎么能输入包含有空格的一行,修改后里面带着空格
末日哥 2013-07-26
  • 打赏
  • 举报
回复
引用 2 楼 NO1duronggang 的回复:
我知道了,if(b.equals(idd[1]))//从此处抛出异常,如果b的长度小于等于1,就会数组越界,再请教个问题,怎么能输入包含有空格的一行,修改后里面带着空格
试试\b
末日哥 2013-07-25
  • 打赏
  • 举报
回复
没看出有什么异常,倒是看出逻辑有问题,没找到编号就直接往下叫输入修改内容啊

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧