普通的java怎么来读取外部文件

普通的java怎么来读取外部文件,第1张

/读取文件为String/
String filepath="e:/testtxt"; 
String charSet="UTF-8";
public static String readFile(String filepath, String charSet) throws IOException {
InputStreamReader read = null;
BufferedReader bufferedReader = null;
try {
read = new InputStreamReader(new FileInputStream(filepath), charSet);
bufferedReader = new BufferedReader(read);
String lineTxt = null;
StringBuffer buffer = new StringBuffer();
while ((lineTxt = bufferedReaderreadLine()) != null) {
bufferappend(lineTxt + ConstantLINE_SEPARATOR);
}
return buffertoString();
} catch (Exception e) {
throw e;
} finally {
if (bufferedReader != null)
bufferedReaderclose();
if (read != null) {
readclose();
}
}
}

分为读字节,读字符两种读法
◎◎◎FileInputStream 字节输入流读文件◎◎◎
public class Maintest {
public static void main(String[] args) throws IOException {

File f=new File("G:\\just for fun\\xiangweitxt");

FileInputStream fin=new FileInputStream(f);

byte[] bs=new byte[1024];

int count=0;
while((count=finread(bs))>0)
{
String str=new String(bs,0,count); //反复定义新变量:每一次都 重新定义新变量,接收新读取的数据
Systemoutprintln(str); //反复输出新变量:每一次都 输出重新定义的新变量
}
finclose();
}
}
◎◎◎FileReader 字符输入流读文件◎◎◎
public class Maintest {
public static void main(String[] args) throws IOException {

File f=new File("H:\\just for fun\\xiangweitxt");

FileReader fre=new FileReader(f);

BufferedReader bre=new BufferedReader(fre);
String str="";
while((str=brereadLine())!=null) //●判断最后一行不存在,为空
{
Systemoutprintln(str);
}
breclose();
freclose();
}

}

java中获得一个文件夹中的所有文件名代码如下:

package comreadfile;

import javaioFile;

public class GetAllFiles {

public static void main(String[] args) {

//路径   这里写一个路径进去

String path="F:\\QQ文档";

//调用方法

getFiles(path);

}

 

/

递归获取某路径下的所有文件,文件夹,并输出

/

public static void getFiles(String path) {

File file = new File(path);

// 如果这个路径是文件夹

if (fileisDirectory()) {

// 获取路径下的所有文件

File[] files = filelistFiles();

for (int i = 0; i < fileslength; i++) {

// 如果还是文件夹 递归获取里面的文件 文件夹

if (files[i]isDirectory()) {

Systemoutprintln("目录:" + files[i]getPath());

getFiles(files[i]getPath());

} else {

Systemoutprintln("文件:" + files[i]getPath());

}

}

} else {

Systemoutprintln("文件:" + filegetPath());

}

}

}

扩展资料:

如果想要获得当前文件中的文件名只需要String [] fileName = filelist();就可以了。

如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。

其中public static String [] getFileName(String path)是只得到当前文件中的文件名。

public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。

参考资料:

百度百科-Java

写了一个读取本地文件的方法, File file = new File(htmlFile); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); while((s=brreadLine())!=null){ aladd(s); } 在当前类写了main方法测试了一下是可行的, 但是页面某方法想调用该方法,不能实现。 总结问题是:只有放在static方法中可行,在其他地方调用都显示找不到指定文件。 文件结构: 把本地文件放在了web-inf的classes下了,相对路径写的(“/filetxt”); 求教为啥static方法可以,其他地方调用不行,这个函数本身不是静态的啊。

一个例子,如果有一个Test文件夹里面有testjava和hellotxt如果你想用testjava *** 作hellotxt
只要在testjava中这样写File file=new File("hellotxt");//这样就是相对路径。如果文件结构是
Test文件夹
|------testjava
|------hellotxt
|------source文件夹
|---------worldtxt
如果想在testjava中 *** 作worldtxt。只要这样写File file=new File("source/worldtxt");
另外,在web开发中/代表项目文件夹根目录,当然也有可能代替webapps,区分方法是:如果/开头的uri是给浏览器解析则/代表webapps,如果是给服务器后台解析,则代表项目文件

平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下
一 相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
String relativelyPath=SystemgetProperty("userdir");
上述相对路径中,java项目中的文件是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
二 类加载目录的获得(即当运行时某一类时获得其装载目录)
11)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
InputStream is=TestActionclassgetClassLoader()getResourceAsStream("testtxt");
(testtxt文件的路径为 项目名\src\testtxt;类TestAction所在包的第一级目录位于src目录下)
上式中将TestAction,testtxt替换成对应成相应的类名和文件名字即可
12)通用方法二 (此方法和11中的方法类似,不同的是此方法必须以'/'开头,
InputStream is=Test1classgetResourceAsStream("/testtxt");
(testtxt文件的路径为 项目名\src\testtxt,类Test1所在包的第一级目录位于src目录下)
三 web项目根目录的获得(发布之后)
1 从servlet出发
可建立一个servlet在其的init方法中写入如下语句
ServletContext s1=thisgetServletContext();
String temp=s1getRealPath("/"); (关键)
结果形如:D:\工具\Tomcat-60\webapps\002_ext\ (002_ext为项目名字)
如果是调用了s1getRealPath("")则输出D:\工具\Tomcat-60\webapps\002_ext(少了一个"\")
2 从>

获取一个目录下的所有文件和目录方法:

import javaioFile;
public class FileTest {
    public static void main(String[] args) {
        /
          将目标目录封装成 File 对象。
         /
        File dir = new File("/Users/zym/Desktop/Mac应用程序");
        /
          获取目录下的所有文件和文件夹
         /
        String[] names = dirlist();
        for (String name : names) {
            Systemoutprintln(name);
        }
    }
}

通过文件过滤器获取某个目录下的文件,例如所有的 txt、doc文件。

过滤器:

import javaioFile;
import javaioFilenameFilter;
public class FilterByDoc implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        return nameendsWith("doc");
    }
}

获取某个目录下的按照过滤器规则的所有文件:

import javaioFile;
public class FileTest {
    public static void main(String[] args) {
        /
          将目标目录封装成 File 对象。
         /
        File dir = new File("/Users/zym/Desktop/Mac应用程序");
        /
          通过过滤器获取目录下的所有的 doc 文件
         /
        String[] names = dirlist(new FilterByDoc());
        for (String name : names) {
            Systemoutprintln(name);
        }
    }
}

希望能对您有所帮助!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10332901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存