关于文件读写操作问题 50分 请教一个问题:::根据条件搜索文件内容,例查找UserName,有没有好的方法查找,并把找查的结果保存。麻烦大家提供一个思路````先谢了 思路好立马结帖,绝不失言 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单的就是遍历文件夹然后打开每个文件在里面判断是否能找到这个关键字(所以dat文件一般是不会被找到的)关掉,继续下一个至于细节我现在只想到一点在读取第一行的时候,先判断然后把行末的keyword.length()-1个字符加到下一行的开头再判断 不好意思,可能说的不是很清楚```我要把文件内容读取到对象中```文件内容有一种特别格式如果文件内容格式变化时,我读出的内容就不准确, 文本格式格式内容:yiart122|1234567|0|3|467f361a00000002||2007-06-25 11:34:34|9.080 文件分格为"|"如果我格式变化成这种:1234567|yiart122|0|3|467f361a00000002||2007-06-25 11:34:34|9.080 这样我就需要修改对象,使程序通用性很差````能不能在通过配置文件来更改```麻烦大家提供一个思路`````先谢了,思路好的立马结贴 先谢谢zdjray(PubSoft)就是觉的这样是程序降低了通用性 可以使用文件输入流,一段一段的读,具体的方法是,比如读1K,在读的过程中,可能会把要查找的字符串给分割掉,因此,先判断读取的1K加上1K左右第一个|。 为什么不放到数据库中!!我们有个做法是做配置,把行数,列数,每列显示信息的意义都放到配置文件中,根据配置文件建立list或者别的什么,然后读文件,把内容放到建立的list中 bit1010(小虾风清扬)可以使用文件输入流,一段一段的读,具体的方法是,比如读1K,在读的过程中,可能会把要查找的字符串给分割掉,因此,先判断读取的1K加上1K左右第一个|。先谢了,现在用的就是这种方法,我的问题是:当改变文本格式的内容时,我建立的对象就需手动改变,通用性就降低了.....考虑是不是可以通过配置一个xml文件来生成对象,根据读xml的属性来确定文本格式的内容,,,不知道这种方法可行不? kqw1981() ( 为什么不放到数据库中!!我们有个做法是做配置,把行数,列数,每列显示信息的意义都放到配置文件中,根据配置文件建立list或者别的什么,然后读文件,把内容放到建立的list中你这个思路挺好的`````能不能详细说说`` 1.用输入输出流inputsteam来读,2.然后定义个数组,把数据流中的数据以字节形式存入数组,3.把字节数组转化为字符串,string=new String(array,”aa.txt“)4.这样就可以匹配查找了吗 if(string.charAt(i)==userName){}这样的思路lz可以考虑一下 上面忘了一步,字符串以“/”分隔,string=split(“/”),分隔以后也可以读入数组 不要使用对象,用Map<String.String>把key的顺序写在配置文件中,也就像是数据库中的字段名的顺序;读文件的时候,先读配置文件,读取信息的顺序,然后把value存入一个map对象。这样,在修改数据文件的格式的时候,只需要相应的修改一下配置文件中key的顺序就可以了。 kqw1981()的思路很好,值得学习一下为什么不放到数据库中!!我们有个做法是做配置,把行数,列数,每列显示信息的意义都放到配置文件中,根据配置文件建立list或者别的什么,然后读文件,把内容放到建立的list中======================== 用xml文件 把每个串yiart122|1234567|0|3|467f361a00000002||2007-06-25 11:34:34|9.08当做一个结点 结点下面的yiart122 ;1234567 这些 做为结点的属性来读想要更改格式的时候 无非在程序里增加删除属性而已root -node1 -id yiart -password 1234567 ... -node2... 如何快速的按照特定要求找出所有文件呢?试试java.io.FileFilter 吧。 FileFilter 包含在Java Development Kit (JDK) 1.2 众多的附件中。它的主要作用就是检测文件是否存在。FileFilter 和它的前身FilenameFilter 的唯一不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的。 例如,FileFilter 是这样的: boolean accept(File file); 而FilenameFilter 却是以下的样子: boolean accept(File directory, String name); 一个简单的例子是搜索特定的文件扩展名,你可以使用FilenameFilter ,但是出来的结果会让你很难判断到底是文件夹还是文件。要解决这个问题,你需要使用文件对象。也就是使用FileFilter吧。 以下是ExtensionFileFilter 的代码: package com.generationjava.io.find; import java.io.File; import java.io.FileFilter; public class ExtensionFileFilter implements FileFilter { private String extension; public ExtensionFileFilter(String extension) { this.extension = extension; } public boolean accept(File file) { if(file.isDirectory( )) { return false; } String name = file.getName( ); // find the last int idx = name.lastIndexOf("."); if(index == -1) { return false; } else if(index == name.length( ) -1) { return false; } else { return this.extension.equals(name.substring(index+1)); } } } 以下的例子中用到了上述的ExtensionFileFilter 代码: ... String dir = "..."; // directory of your choice File file = new File(dir); File[] files = file.listFiles(new ExtensionFileFilter("cfg")); // files variable is now c:*.cfg if 'dir' is c: // that is, all the files in the specified directory ending in *.cfg ... FileFilter 其实是从 javax.swing.filechooser.FileFilter派生出来的,javax.swing.filechooser.FileFilter 是使用JFileChoosers的抽象类。 shili150(我是狮子王) 1.用输入输出流inputsteam来读,2.然后定义个数组,把数据流中的数据以字节形式存入数组,3.把字节数组转化为字符串,string=new String(array,”aa.txt“)4.这样就可以匹配查找了吗 if(string.charAt(i)==userName){}先谢谢您了,这个方法已经在用````考虑的问题是```文件内容格式变化,通过改变配置文件的属性来生成对象. checkboxGroup与ButtonGroup 平台相关性问题 请问此程序哪里有错误?望改之~谢谢 关于URL ●●● 200本Java书籍下载........................................... vector,在线等 java 应用程序 安装程序制作(要带jvm) 编码解码问题 怎样才能从javascript调用一个可执行程序? final关键字,想请问一下下面的为什么是TRUE 一道面试题 applet与servlet通信传递大数据量遇到阻塞问题如何解决,谢谢
然后打开每个文件
在里面判断是否能找到这个关键字(所以dat文件一般是不会被找到的)
关掉,继续下一个至于细节我现在只想到一点
在读取第一行的时候,先判断
然后把行末的keyword.length()-1个字符加到下一行的开头再判断
我要把文件内容读取到对象中```文件内容有一种特别格式如果文件内容格式变化时,我读出的内容就不准确,
文本格式
格式内容:yiart122|1234567|0|3|467f361a00000002||2007-06-25 11:34:34|9.080
文件分格为"|"
如果我格式变化成这种:1234567|yiart122|0|3|467f361a00000002||2007-06-25 11:34:34|9.080
这样我就需要修改对象,使程序通用性很差````能不能在通过配置文件来更改```麻烦大家提供一个思路`````先谢了,思路好的立马结贴
就是觉的这样是程序降低了通用性
可以使用文件输入流,一段一段的读,具体的方法是,比如读1K,在读的过程中,可能会把要查找的字符串给分割掉,因此,先判断读取的1K加上1K左右第一个|。先谢了,现在用的就是这种方法,我的问题是:当改变文本格式的内容时,我建立的对象就需手动改变,通用性就降低了.....考虑是不是可以通过配置一个xml文件来生成对象,根据读xml的属性来确定文本格式的内容,,,不知道这种方法可行不?
为什么不放到数据库中!!我们有个做法是做配置,把行数,列数,每列显示信息的意义都放到配置文件中,根据配置文件建立list或者别的什么,然后读文件,把内容放到建立的list中你这个思路挺好的`````能不能详细说说``
2.然后定义个数组,把数据流中的数据以字节形式存入数组,
3.把字节数组转化为字符串,string=new String(array,”aa.txt“)
4.这样就可以匹配查找了吗 if(string.charAt(i)==userName){}这样的思路lz可以考虑一下
把key的顺序写在配置文件中,也就像是数据库中的字段名的顺序;读文件的时候,先读配置文件,读取信息的顺序,然后把value存入一个map对象。
这样,在修改数据文件的格式的时候,只需要相应的修改一下配置文件中key的顺序就可以了。
为什么不放到数据库中!!我们有个做法是做配置,把行数,列数,每列显示信息的意义都放到配置文件中,根据配置文件建立list或者别的什么,然后读文件,把内容放到建立的list中
========================
当做一个结点 结点下面的yiart122 ;1234567 这些 做为结点的属性来读
想要更改格式的时候 无非在程序里增加删除属性而已
root
-node1
-id yiart
-password 1234567
...
-node2
...
FileFilter 包含在Java Development Kit (JDK) 1.2 众多的附件中。它的主要作用就是检测文件是否存在。FileFilter 和它的前身FilenameFilter 的唯一不同是FileFilter 提供文件对象的访问方法,而FilenameFilter 是按照目录和文件名的方式来工作的。 例如,FileFilter 是这样的:
boolean accept(File file);
而FilenameFilter 却是以下的样子:
boolean accept(File directory, String name); 一个简单的例子是搜索特定的文件扩展名,你可以使用FilenameFilter ,但是出来的结果会让你很难判断到底是文件夹还是文件。要解决这个问题,你需要使用文件对象。也就是使用FileFilter吧。 以下是ExtensionFileFilter 的代码:
package com.generationjava.io.find; import java.io.File;
import java.io.FileFilter; public class ExtensionFileFilter implements FileFilter { private String extension; public ExtensionFileFilter(String extension) {
this.extension = extension;
} public boolean accept(File file) {
if(file.isDirectory( )) {
return false;
} String name = file.getName( );
// find the last
int idx = name.lastIndexOf(".");
if(index == -1) {
return false;
} else
if(index == name.length( ) -1) {
return false;
} else {
return this.extension.equals(name.substring(index+1));
}
}
}
以下的例子中用到了上述的ExtensionFileFilter 代码:
...
String dir = "..."; // directory of your choice
File file = new File(dir);
File[] files = file.listFiles(new ExtensionFileFilter("cfg")); // files variable is now c:*.cfg if 'dir' is c:
// that is, all the files in the specified directory ending in *.cfg
...
FileFilter 其实是从 javax.swing.filechooser.FileFilter派生出来的,javax.swing.filechooser.FileFilter 是使用JFileChoosers的抽象类。
1.用输入输出流inputsteam来读,
2.然后定义个数组,把数据流中的数据以字节形式存入数组,
3.把字节数组转化为字符串,string=new String(array,”aa.txt“)
4.这样就可以匹配查找了吗 if(string.charAt(i)==userName){}先谢谢您了,这个方法已经在用````考虑的问题是```文件内容格式变化,通过改变配置文件的属性来生成对象.