J2SE,J2EE,EJB,JMS,J2ME,JSP,Serlet,JavaBean分别是java 2 standard edition, java 2 enterprise edition, enterprise javabean , java mail server ,java2 mobilible edition,java server page,
解决方案 »
- 一个简单的面向对象程序,不太理解,新手请教:)小弟先谢谢了
- 超级菜鸟问题(绝对相当送分)--cmd中运行.class文件
- JButton中按下图标、滚动图标、禁用图标都分别是什么意思啊?有什么用吗?
- 瞬联、ibm面试题,大家来答答看!!!
- 请高手给个思路,关于applet的
- 求教:关于Timestamp转换成字符串的问题
- 还是SOCKET的问题,打开一个输入流以后,有一部分数据我不想再接受了,该怎么办?(很急,没分了)
- Java 有固定大小(长度)的key-value的集合用吗?Map好像没有。
- 又一个关于类的的设计的问题?(UML?)
- 谁帮我写一下
- 超级菜鸟问题,请问awt与swing的区别在那里?谢谢了
- 求教:sun有了awt为什么还要提供swing?
好像是没有中文的api,只有英文的jdk api的帮助文档。
import java.io.*;
import java.lang.*;
import java.util.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class deletefile {
public deletefile() {
}
//改变第几列的值,返回值true表示成功,false表示失败
//第一个参数是文件路径;第二个参数是第几列,是从0开始的;第三个参数是改成的字符;第四个参数是分割字符
public boolean changeCol(String FilePath,int col,String AddStr,String MidStr)
{
try{
BufferedReader br=new BufferedReader(new FileReader(FilePath));
String strLine=null;
boolean bleFirst=true;
String[] strInfo=null;
StringBuffer buffer=new StringBuffer();
int intPosition=0;
while((strLine=br.readLine())!=null)
{
//intPosition=strLine.indexOf(MidStr,4);
StringTokenizer token=new StringTokenizer(strLine,MidStr);
strInfo=new String[token.countTokens()];//分配相应的空间大小
//token.nextToken();
int i=0;
while(token.hasMoreElements())
{
strInfo[i]=token.nextToken().trim();
i++;
}
int intBeforeLength=0;
for(i=0;i<col;i++)
intBeforeLength=intBeforeLength+1+strInfo[i].length();//得到要修改列前的位置
int intAfterLength=intBeforeLength+strInfo[col].length();//得到要修改列后的位置
strLine=strLine.substring(0,intBeforeLength)+AddStr+strLine.substring(intAfterLength);//得到修改后的字符串
if (!bleFirst) buffer.append("\r\n");
buffer.append(strLine);
bleFirst=false;
// 写入文件 }
br.close();
PrintWriter out = new PrintWriter(new FileWriter(FilePath));
out.println(new String(buffer));
out.close(); return true;
}catch(Exception e){
e.printStackTrace();
return false;
} }
//删除文本文件中指定字符串第几次出现的行
//参数octStr制定字符串,FilePath文件路径,ResultRow第几次出现在行中
//如果返回值是0的话表示没有找到,如果是-1的话表示出错,大于0的话表示一共出现了多少次
public int deleteOneRow(String octStr,String FilePath,int ResultRow)
{
try{
BufferedReader br=new BufferedReader(new FileReader(FilePath));
StringBuffer buffer=new StringBuffer();
String strLine=null;
int j=0;
boolean flag=false;
boolean first=true;
while((strLine=br.readLine())!=null)
{
if(strLine.indexOf(octStr)==-1)//如果没有制定字符串
{
if (!first)buffer.append("\r\n");
buffer.append(strLine);//放入buffer中
first=false;
}else{
j++;
if (j!=ResultRow) {//如果有但不是需要删除的
if (!first)buffer.append("\r\n");
buffer.append(strLine); //放入buffer中
first = false;
}
}
}
br.close();
//写入文件
PrintWriter out=new PrintWriter(new FileWriter(FilePath));
out.println(new String(buffer));
out.close();
//回显屏幕
BufferedReader in=new BufferedReader(new FileReader(FilePath));
strLine=null;
while((strLine=in.readLine())!=null)
{
System.out.println(strLine+"yyyyyy");
}
return j;
}catch(Exception e){
e.printStackTrace();
return -1;
}
}
public static void main(String[] args)
{
deletefile example=new deletefile();
//example.deleteOneRow("cxacyc","d:\\one.txt",1);
example.changeCol("d:\\one.txt",2,"343","|");//修改第二列的值为343,列是从0开始的
}
}
我测试过了,你看一下吧
http://expert.csdn.net/Expert/topic/2340/2340062.xml?temp=.6778223
别说你这了~