1,hjj,123,0
2,hj,123,0
内容如上,
更新的内容为123或0,逗号分隔
已知要更新的行号lineNum
2,hj,123,0
内容如上,
更新的内容为123或0,逗号分隔
已知要更新的行号lineNum
解决方案 »
- java考试系统 c/s 带程序题批改
- java编写的聊天程序,但不知道好友界面怎么实时刷新!求思路,求指点!
- 关于java.net.*
- 帮忙解决一下udp广播的问题
- JDK1.5中的新功能注释,最大的作用是什么呢?
- 在jb2005里如何设置加载dll的路径?
- 关于Java中byte的问题,如何得到范围外字符的编码(我感觉有难度)
- 请教Thinking in java中第6章 类再生关于6.2 继承的语法中Detergent.java运行的问题?源代码如下:
- 为什么用jcreator2.5pro编辑程序时,有干扰字符,让人不爽。
- 是否有这样一个类,把科学技术法转换成正常的数字显示
- 一个小问题,this和 类名.this有什么不同
- 一个 java小问题,请给个答案
文件内容如下
1,hjj,123,0
2,hj,123,0
---------
---------
对应编号,姓名,密码,成绩
我要更新某个用户的成绩,java里面如何实现?
我目前使用的方法是读取全部内容,然后更新内容,再把整个文件重写一次!
求更新特定行,特定位置的方法!
package io;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Txt_Change {
public void fox_Split(String txtIn, String txtOut) { File fileIn = new File(txtIn);
File[] txtFiles = fileIn.listFiles();
for (int i = 0; i < txtFiles.length; i++) {
File txtFile = txtFiles[i];
try {
FileInputStream fis = new FileInputStream(txtFile);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr); File file = new File(txtOut + File.separator);
if (!file.exists()) {
file.mkdirs();
}
while (br.ready()) { String s = br.readLine(); s = replace(s); PrintWriter txtPw = new PrintWriter(new FileWriter(txtOut
+ File.separator + "Txt_Change" + ".txt", true));
txtPw.println(s);
txtPw.close(); }
br.close();
isr.close();
fis.close(); } catch (Exception e) {
e.printStackTrace();
}
}
} public String replace(String s) {
String[] str = s.split(",");
String[] str1 = new String[str.length]; StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length; i++) {
if (i == 3) {
str1[3] = 1111111 + "";
} else {
str1[i] = str[i];
}
sb.append(str1[i]);
if (i != 3) {
sb.append(";");
}
} return sb.toString();
} public static void main(String[] args) {
String txtIn = "E:\\Fox\\Fox1\\";
String txtOut = "E:\\Fox\\Fox2\\"; Txt_Change txt_Change = new Txt_Change();
txt_Change.fox_Split(txtIn, txtOut);
}
}
package io;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Txt_Change {
public void fox_Split(String txtIn, String txtOut) {
int rowNum=0;
File fileIn = new File(txtIn);
File[] txtFiles = fileIn.listFiles();
for (int i = 0; i < txtFiles.length; i++) {
File txtFile = txtFiles[i];
try {
FileInputStream fis = new FileInputStream(txtFile);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr); File file = new File(txtOut + File.separator);
if (!file.exists()) {
file.mkdirs();
}
while (br.ready()) {
rowNum++;
String s = br.readLine();
if(rowNum==4){
s = replace(s);
}
PrintWriter txtPw = new PrintWriter(new FileWriter(txtOut
+ File.separator + "Txt_Change" + ".txt", true));
txtPw.println(s);
txtPw.close(); }
br.close();
isr.close();
fis.close(); } catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(rowNum);
} public String replace(String s) {
String[] str = s.split(",");
String[] str1 = new String[str.length];
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length; i++) {
if (i == 3) {
str1[3] = 1111111 + "";
} else {
str1[i] = str[i];
}
sb.append(str1[i]);
if (i != 3) {
sb.append(",");
}
} return sb.toString();
} public static void main(String[] args) {
String txtIn = "E:\\Fox\\Fox1\\";
String txtOut = "E:\\Fox\\Fox2\\"; Txt_Change txt_Change = new Txt_Change();
txt_Change.fox_Split(txtIn, txtOut);
}
}
2,hj,123,0
3,haa,234,3
4,ada,2324,23
5,dds,212,541,hjj,123,0
2,hj,123,0
3,haa,234,3
4,ada,2324,1111111
5,dds,212,54
后面是执行方法后的结果