日期: 2022-09-21 05:11:16 浏览数:4

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
新泰爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

时需要列出目录下指定类型的文件,例如:. java、. txt 等扩展名的文件。可以使用File类的下述两个方法,列出指定类型的文件:
1、public String[ ] list(FilenameFilter obj) 该方法用字符串的形式返回目录下的指定类型的所有文件
2、public File[ ] listFile(FilenameFilter obj) 该方法用 File 对象形式返回目录下的指定类型的所有文件
上述两个方法的参数 FilenameFilter 是一个接口,该接口有一个方法:
public boolean accept(File f,String name);
File 对象 f 调用 list 方法时,需向该方法传递一个实现 FilenameFilter 接口的对象,list 方法执行时,参数 obj 不断回调接口方法accept(File f,String name),该方法中的参数 f 为,调用 list 的当前目录,参数 name 被实例化为当前目录中的一个文件名,当接口方法返回 true 时,list 方法就将名字为 name 的文件存放到返回的数组中。
import java.io.*;public class Filelei implements FilenameFilter {//此次使用本类作为接口 /**
* @param args
*/ public void f(){ File f=new File("E:Myworkspace 8src"); String []filename=f.list();//以字符串的形式,先列出当前目录下所有文件看一下(有什么类型的文件) for(int i=0;i<filename.length;i++){ System.out.println(filename[i]); } System.out.println("********************************"); String []fname=f.list(this); for(int i=0;i<fname.length;i++){ System.out.println(fname[i]); }
} public static void main(String[] args) { // TODO Auto-generated method stub new Filelei().f();
} @Override public boolean accept(File f, String name) {//重写接口方法 // TODO Auto-generated method stub return name.endsWith(".java");//返回当前目录下以.java结尾的文件 }}运行结果:
A.java B.java C.java J1.java J2.java
FileOutputStream 读写文件举例中出现乱码, 跟字符集编码无关, 是由于读写的格式不同导致的。
// 读写文件, 以二进制读写, 有乱码, 是由于输入输出格式转换的原因, 和字符集编码方式无关
public static void main(String[] args) {
try {
byte[] bWrite = {11, 21, 3, 40, 5 };
OutputStream os = new FileOutputStream("./out/test.txt");
for (int x = 0; x < bWrite.length; ++x) {
os.write(bWrite[x]);
}
os.close();
InputStream is = new FileInputStream("./out/test.txt");
int size = is.available();
for (int x = 0; x < size; ++x) {
System.out.print((byte) is.read() + " "); //强转为byte类型就好了
}
is.close();
} catch (IOException e) {
System.out.print("Exception");
}
}
luffysman
luffysman
N92***5465@stu.xjtu.edu.cn
4年前 (2019-01-30)
iamanoob
599***619@qq.com
18
BufferedReader 是支持同步的,而 Scanner 不支持。如果我们处理多线程程序,BufferedReader 应当使用。
BufferedReader 相对于 Scanner 有足够大的缓冲区内存。
Scanner 有很少的缓冲区(1KB 字符缓冲)相对于 BufferedReader(8KB字节缓冲),但是这是绰绰有余的。
BufferedReader 相对于 Scanner 来说要快一点,因为 Scanner 对输入数据进行类解析,而 BufferedReader 只是简单地读取字符序列。
iamanoob
iamanoob
599***619@qq.com
3年前 (2019-03-13)
sky-wu
Wu_***@Foxmail.com
13
使用 io 流进行文件的简单复制:
test.txt 内容为:
I love Java, I love JavaI love Java, I love JavaI love Java, I love JavaI love Java, I love JavaI love Java, I love Java
代码:
import java.io.*;
public class Test {
public static void main(String[] args) {
File sourcefile = new File("./test.txt");
File copyfile = new File("./testcopy.txt");
FileInputStream fileInputStream = null;// 从文件中读数据
FileOutputStream fileOutputStream = null;// 用于把数据写入文件
BufferedWriter bufferedWriter = null;// 用于把数据写入文件
try {
if (!sourcefile.exists()) {
sourcefile.createNewFile();
bufferedWriter = new BufferedWriter(new FileWriter(sourcefile));
// bufferedwriter 自动追加数据
String s = new String(" I love Java");
char bchar[] = s.toCharArray();
for (int i = 0; i < 5; i++) {
// 两种方式往文件中写数据
bufferedWriter.write(bchar, 0, bchar.length);
bufferedWriter.write(", " + s + " ");
}
// 写完之后才能关闭流,
bufferedWriter.flush();
bufferedWriter.close();
}
copyfile.createNewFile();
fileInputStream = new FileInputStream(sourcefile);
fileOutputStream = new FileOutputStream(copyfile);
byte b[] = new byte[8192];
int len = b.length;
while ((len = fileInpu
新泰爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)