JAVA怎样读取指定的行呢 我有个文本文档,里面有很多行数据怎样读取指定行的数据还有怎样修改指定行的数据呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String[] args) throws IOException { File file = new File("d:/55.txt"); File file2 = new File("d:/55-new.txt"); BufferedReader reader = new BufferedReader(new FileReader(file)); PrintWriter writer = new PrintWriter(file2); int len = 2; // 修改第几行 String toString = "TEST" + new Date(); // 修改的内容 String line; while ((line = reader.readLine()) != null) { len--; if (len == 0) { writer.println(toString); } else { writer.println(line); writer.flush(); } } reader.close(); writer.close(); } ?同一个文件? 对不起,我想不通1 你读取第一行,比如20个字符,2 你修改了第一行,比如比第一行长,3 可是当你再次读取的时候,你会发现,你再次读到了第一行的内容。因为第23个字符是你刚才修改的那个!!如果你想读写,同时内容长度又可能变化的话,除了一次性把文件全部读取到内存,我想不出任何其它办法了。如果是10G的文件,你要用10G内存读吗?sorry,期待高手出现。另:我给的方法可以在最后采用1 删除原始文件2 更名新文件为原始文件名来解决 我要实现的功能是这样的比如 Apache 服务器的 httpd.confMYSQL 的my.ini里面有那么多数据他是怎样读取的呢 如果是 aaa = bbb这种格式,用import java.io.InputStream;import java.util.Properties;public class TestProperty { public String getPara(String fileName) { Properties prop = new Properties(); try { InputStream is = getClass().getResourceAsStream(fileName); prop.load(is); if (is != null) is.close(); } catch (Exception e) { System.out.println(e + "file " + fileName + " not found"); } return prop.getProperty("file_name"); } public static void main(String[] args) { TestProperty test = new TestProperty(); System.out.println(test.getPara("db.property")); }}db.property内容file_name=121212121.doc如果是复杂格式,比如 apache的虚拟主机的配置,就得自己解析了。 有关反射中getSuperClass的问题! 求解: 为什么类的构造函数可以没有名字 如何操作JFreeChart生成的图? 急!急!急!JXL中如何实现顶端标题行/左端标题列的功能? 我这边有个JPanel,运行时动态向里面增加了组件 请教问题!!!在线等 求水纹效果的Applet。 Java中如何创建一个新文件(请高手指教) 怎样注册Jbuilder6.0,多谢 如何在apache里面设置多个虚拟主机?能不能给个例子? String 不是传引用的吗,可是为什么会这样呢? 那一本书能更好的入门学习JAVA
File file = new File("d:/55.txt");
File file2 = new File("d:/55-new.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
PrintWriter writer = new PrintWriter(file2);
int len = 2; // 修改第几行
String toString = "TEST" + new Date(); // 修改的内容
String line;
while ((line = reader.readLine()) != null) {
len--;
if (len == 0) {
writer.println(toString);
} else {
writer.println(line);
writer.flush();
}
}
reader.close();
writer.close();
}
1 你读取第一行,比如20个字符,
2 你修改了第一行,比如比第一行长,
3 可是当你再次读取的时候,你会发现,你再次读到了第一行的内容。因为第23个字符是你刚才修改的那个!!
如果你想读写,同时内容长度又可能变化的话,除了一次性把文件全部读取到内存,我想不出任何其它办法了。如果是10G的文件,你要用10G内存读吗?sorry,期待高手出现。另:我给的方法可以在最后采用
1 删除原始文件
2 更名新文件为原始文件名来解决
aaa = bbb这种格式,用import java.io.InputStream;
import java.util.Properties;public class TestProperty {
public String getPara(String fileName) {
Properties prop = new Properties();
try {
InputStream is = getClass().getResourceAsStream(fileName);
prop.load(is);
if (is != null)
is.close();
} catch (Exception e) {
System.out.println(e + "file " + fileName + " not found");
}
return prop.getProperty("file_name");
} public static void main(String[] args) {
TestProperty test = new TestProperty();
System.out.println(test.getPara("db.property"));
}
}
db.property内容
file_name=121212121.doc如果是复杂格式,比如 apache的虚拟主机的配置,就得自己解析了。