这道题主要就是利用了String类的split()方法,进行多次调用,已经帮你实现了,代码如下:
public class Test{
public static void main(String[] args){
String str = "c:/win/good/aaatxt;d:/win/good/bbbtxt;c:/win/cccctxt;";
//得到路径数组
String[] fileRoot = strsplit(";");
String[] fileName = null;
for(int i = 0;i < fileRootlength;i++){
if(fileRoot[i] != null){
fileName = fileRoot[i]split("/");
//得到最终需要的文件名
Systemoutprintln (fileName[fileNamelength-1]);
}
}
}
}
用两个页面来完成你的功能。
indexjsp接受你上传的文件;
uploadfilejsp显示上传文件中的内容。
具体要显示什么,你根据自己需要修改下吧。
indexjsp的内容如下:
<%@ page language="java" import="javautil" pageEncoding="UTF-8"%>
<html>
<head>
<title>index</title>
</head>
<body>
<center>
<form action="uploadfilejsp" method = "post">
newFile: <input type = "file" name = "newFile" size=60 value=""/><br>
<input type = "submit" value = "upload">
</form>
</center>
</body>
</html>
----------------------------------
uploadfilejsp内容如下:
<%@ page language="java" import="javautil" pageEncoding="UTF-8"%>
<%@ page import = "javaio" %>
<form action = "uploadfilejsp" method = "post">
<table border = "1">
<tr>
<th>ID</th>
<th>UserName</th>
<th>Password</th>
</tr>
<%
try{
String s = requestgetParameter("newFile");
String ss = new String(sgetBytes("ISO-8859-1"),"UTF-8");
File f = new File(ss);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String str = "";
int i = 1;
while((str = brreadLine()) != null){
ArrayList list = new ArrayList();
StringTokenizer st = new StringTokenizer(str, " ");
while(sthasMoreElements()){
listadd((String)stnextElement());
}
String u = (String)listget(0);
String p = (String)listget(1) ;
%>
<tr>
<td><%=i %></td>
<td><input type = "text" name = "u" value="<%=u %>"/></td>
<td><input type = "text" name = "p" value="<%=p %>"/></td>
</tr>
<%
i++;
}
brclose();
}catch(Exception e){
outprint(e);
}
%>
</table>
</form>
其实这种方式不是最理想的上传形式,不过要实现通用的那种方式的话,还需要下载一个jspSmartUpload组件来实现,这种方式是非常简洁的。
如果你要上传的txt文件的内容为:
aaa 111
bbbb 222
cccc 333
dddd 444
eeee 555
ffff 666
那么当你运行这个程序后,你在uploadfilejsp页面上看到的输出结果是:
ID UserName Password
1 aaa 111
2 bbbb 222
3 cccc 333
4 dddd 444
5 eeee 555
6 ffff 666
现在这样的结果是你要的吗?
已经修改了,应该达到了你的目的了吧,不过了结果是在一个jsp页面中输出的。
姓名和密码分别放在两个不同的文本框中,如果txt有多个姓名和密码,那么就由多个文本框来分别存放姓名和密码。
//根据你的要求修改了一下代码,现在已经能将某文件夹下的所有指定类型文件复制到
//指定文件夹下了
import javaioBufferedInputStream;
import javaioBufferedOutputStream;
import javaioFile;
import javaioFileInputStream;
import javaioFileOutputStream;
public class ReadFiles {
public static final String FILTER = "xml";
public static final String SRC_DIR = "E:\\StudyData";// 待扫描的文件夹
public static final String DES_DIR = "E:\\testdata";// 复制后的目标文件夹
public static void main(String[] args) {
long a = SystemcurrentTimeMillis();
scanDir(SRC_DIR, DES_DIR);
Systemoutprintln("共花费时间:"+(SystemcurrentTimeMillis() - a)/1000+"秒");
}
public static void scanDir(String srcPath, String desPath) {
File dir = new File(srcPath);
File[] files = dirlistFiles();
if (files == null)
return;
for (int i = 0; i < fileslength; i++) {
if (files[i]isDirectory()) {
scanDir(files[i]getAbsolutePath(), desPath);
} else {
String strFileName = files[i]getAbsolutePath()toLowerCase();
copyFile(strFileName, desPath + files[i]getName());
}
}
}
public static void copyFile(String srcName, String destName) {
if (srcNameendsWith(FILTER)) {
Systemoutprintln("正在复制文件 "+srcName+" 至 "+destName);
try {
BufferedInputStream in = new BufferedInputStream(
new FileInputStream(srcName));
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(destName));
int i = 0;
byte[] buffer = new byte[2048];
while ((i = inread(buffer)) != -1) {
outwrite(buffer, 0, i);
}
outclose();
inclose();
} catch (Exception ex) {
exprintStackTrace();
}
}
}
}
获取指定路径下的指定格式的文件
package filenameFilter;
import java io File;
/ 实现功能
获取指定路径下的指定格式的文件
/
public class Test {
public static void listPath(File file) {
// 接收筛选过后的文件对象数组
//用文件对象调用listFiles(FilenameFilter filter) 方法
//返回抽象路径名数组 这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
File files[] = file listFiles(new MyFilenameFilter())
///遍历出指定文件路径下符合条件的文件
for (File f : files) {
System out println(f)
}/
//遍历出指定文件路径下的所有符合筛选条件的文件
for(File f: files){
if(f isDirectory()){
listPath(f)
}else{
System out println(f)
}
}
}
public static void main(String[] args) {
// 创建指定目录的文件对象
File file = new File( F:\\test )
// 调用文件晒筛选的方法 并将文件对象出入
listPath(file)
} }
package filenameFilter;
import java io File;
import java io FilenameFilter;
//实现FilenameFilter接口 可用于过滤器文件名 //本方法实现的是筛选指定格式结尾的文件 public class MyFilenameFilter implements FilenameFilter {
/
@param args
实现功能 实现FilenameFilter接口 定义出指定的文件筛选器
/
@Override
//重写accept方法 测试指定文件是否应该包含在某一文件列表中
public boolean accept(File dir String name) {
// TODO Auto generated method stub
// 创建返回值
boolean flag = true;
// 定义筛选条件
//endWith(String str) 判断是否是以指定格式结尾的
if (name toLowerCase() endsWith( jpg )) {
} else if (name toLowerCase() endsWith( txt )) {
} else if (name toLowerCase() endsWith( gif )) {
} else {
flag = false;
}
// 返回定义的返回值
//当返回true时 表示传入的文件满足条件
return flag;
}
lishixinzhi/Article/program/Java/hx/201311/26918
package comtexst;
import javaioFile;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioIOException;
public class GetFileMessageOfDisk {
/
@param args
/
public static void main(String[] args) {
File file = new File("D:/");
getMessage(file);
}
private static void getMessage(File file){
File[] files = filelistFiles();
if(files==null){
files = new File[0];
}
for(int i=0;i<fileslength;i++){
if(files[i]isDirectory()){
Systemoutprintln(files[i]getPath());
getMessage(files[i]);
}else{
try {
int length = new FileInputStream(files[i])available();
Systemoutprintln(files[i]getName()+" 长度:"+length+" 大小:"+length/1024+"KB");
} catch (FileNotFoundException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
}
}
}
}
以上就是关于java代码实现从路径字符串中获取文件名称全部的内容,包括:java代码实现从路径字符串中获取文件名称、JAVA怎样来获取上传的txt文件里面的内容、java 怎么获取指定路径下的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)