文件过滤器的问题
import java.io.*;public class FindDirectories
{
public static void main(String[] args)
{
File pathName= new File("E:");
ExtensionFilter filter=new ExtensionFilter("txt"); //有问题?不会改
String[] fileNames=pathName.list(filter);
for(int i=0; i<fileNames.length; ++i)
{
System.out.println(fileNames[i]);
}
}
public class ExtensionFilter implements FilenameFilter
{
public ExtensionFilter(String ext)
{
extension="."+ext;
} public boolean accept(File dir,String name)
{
return name.endsWith(extension);
}
private String extension;
}
}
文件读取的问题:
import java.io.*;
import java.util.*;public class FileTest1
{
public static void main(String[] args)
{
File f=new File("F:\\java\\123.txt");
try
{
if(f.exists())
{
DataInputStream in=new DataInputStream(new FileInputStream(f));
while(in.read()!=-1)
{
int n=in.readInt();
System.out.println(n);
}
}
else
{
f.createNewFile();
}
}
catch(IOException e)
{
System.out.println(e);
}
}
}
123.txt中只有int的数据(12 23 56) 为什么无法读取?初学java 谢谢
import java.io.*;public class FindDirectories
{
public static void main(String[] args)
{
File pathName= new File("E:");
ExtensionFilter filter=new ExtensionFilter("txt"); //有问题?不会改
String[] fileNames=pathName.list(filter);
for(int i=0; i<fileNames.length; ++i)
{
System.out.println(fileNames[i]);
}
}
public class ExtensionFilter implements FilenameFilter
{
public ExtensionFilter(String ext)
{
extension="."+ext;
} public boolean accept(File dir,String name)
{
return name.endsWith(extension);
}
private String extension;
}
}
文件读取的问题:
import java.io.*;
import java.util.*;public class FileTest1
{
public static void main(String[] args)
{
File f=new File("F:\\java\\123.txt");
try
{
if(f.exists())
{
DataInputStream in=new DataInputStream(new FileInputStream(f));
while(in.read()!=-1)
{
int n=in.readInt();
System.out.println(n);
}
}
else
{
f.createNewFile();
}
}
catch(IOException e)
{
System.out.println(e);
}
}
}
123.txt中只有int的数据(12 23 56) 为什么无法读取?初学java 谢谢
{
int n=in.readInt();
System.out.println(n); should be like this:int n = 0;
while((n = in.readInt())!= -1){
System.out.println(n);
{
public ExtensionFilter(String ext)
{
extension="."+ext;
} public boolean accept(File dir,String name)
{
return name.endsWith(extension);
}
private String extension;
}
} What is "extension"? Where did u define this variable?
Sorry,,,,,I didn't see u define it at the bottom of code....
还是不行啊
eclipse下是:
825368626
857748276
java.io.EOFException
while((n = in.read())!= -1){
System.out.println((char)n);Try this code...
while((n = in.read())!= -1){
System.out.println((char)n);一个一个字节读取 我想读取int 不过还是谢谢justinavril
那就要一行一行的读 readLine(),然后用split分割.再转换就欧了
。
String s;
while((s = in.readLine())!=null)
{
StringTokenizer t=new StringTokenizer(s," ");
while(t.hasMoreTokens())
{
System.out.println(t.nextToken());
}
}
我知道可以这样处理,但为什么不能用readInt()呢?
java里的流没有c++的方便啊
import java.io.FilenameFilter;public class FindDirectories { public static void main(String[] args) {
File pathName = new File("E:\\");//这里注意要加上\\或/(E:\\或E:/)
String[] fileNames = pathName.list(new FilenameFilter(){
public boolean accept(File dir, String name) {
if(name.endsWith(".txt")) return true;
return false;
}
});
for (int i = 0; i < fileNames.length; ++i) {
System.out.println(fileNames[i]);
}
}}
读取文件import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class FileTest1 {
public static void main(String[] args) {
File f = new File("E:\\123.txt");
try {
if (f.exists()) {
DataInputStream in = new DataInputStream(new FileInputStream(f));
/*DataInputStream 一般用来读DataOutputStream写出来的东西,而不是你自己用notepad写的东西。*/
System.out.println(in.readLine());//这个方法已经不推荐使用了.但是可以看到结果.
} else {
f.createNewFile();
}
} catch (IOException e) {
System.out.println(e);
}
}}
我的修改如下:public class FindDirectories { /**
* @param args
*/
public static void main(String[] args) {
File pathName = new File("E:\\");
ExtensionFilter filter = new ExtensionFilter("txt");
String[] fileNames = pathName.list(filter);
for (int i = 0; i < fileNames.length; ++i) {
System.out.println(fileNames[i]);
}
}
}class ExtensionFilter implements FilenameFilter {
public ExtensionFilter(String ext) {
extension = "." + ext;
} public boolean accept(File dir, String name) {
return name.endsWith(extension);
} private String extension;
}这样就没问题了。
import java.io.FileFilter.*;public class FindDirectories
{
public static void main(String[] args)
{
File pathName= new File("E:\\");
ExtensionFilter filter=new ExtensionFilter("txt");
String[] fileNames=pathName.list(filter);
for(int i=0; i<fileNames.length; ++i)
{
System.out.println(fileNames[i]);
}
}
public class ExtensionFilter implements FilenameFilter
{
public ExtensionFilter(String ext)
{
extension="."+ext;
} public boolean accept(File dir,String name)
{
return name.endsWith(extension);
}
private String extension;
}
}
为什么这样写就不行呢? 一定要用匿名类吗?Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No enclosing instance of type FindDirectories is accessible. Must qualify the allocation with an enclosing instance of type FindDirectories (e.g. x.new A() where x is an instance of FindDirectories). at FindDirectories.main(FindDirectories.java:9)