⑴ java读取文件路径问题
如果你使用的是eclipse,请检查编译是否禁止了非.class文件的编译输出,如果这项没有问题。那么 src/META-INF/*.* 文件自动输出到 /WEB-INF/classes/META-INF/*.*。也就是说,最终资源文件在 WEB-INF/classes/META-INF/weibo.xml
使用JAVA 类获取路径:
Filef=newFile(getClass().getResource("/META-INF/weibo.xml").getPath());
获取InputStream:
InputStreaminput=getClass().getResourceAsStream("/META-INF/weibo.xml");
另外,JAVA项目的标准协定(习惯)中的源代码目录结构是:
src|–main||–javaJAVA文件||–resources资源文件|–test|–javaTESTJAVA文件|–resourcesTEST资源文件
输出的目录结构是:
target|–classesmain/java,main/resource输出目录|–test-classestest/java,test/resources输出目录
⑵ java程序读取资源文件时路径如何指定
(1)、request.getRealPath("/");//不推荐使用获取工程的根路径 (2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用 (3)、request.getSession().getServletContext().getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用 (4)、 this.getClass().getClassLoader().getResource("").getPath();//获取工程classes 下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个 class。所以它应该是一个通用的方法。0、关于绝对路径和相对路径1.基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例 如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基 准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例 如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。另外关于URI,URL,URN等内容,请参考RFC相关文档标准。RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(http://www.ietf.org/rfc/rfc2396.txt)2.关于JSP/Servlet中的相对路径和绝对路径。 2.1服务器端的地址服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对 地址,他们是由客户端浏览器解析的)1、request.getRealPath方法:request.getRealPath("/") 得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\方法:request.getRealPath(".") 得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\.方法:request.getRealPath("") 得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTestrequest.getRealPath("web.xml") C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\web.xml2、request.getParameter("");ActionForm.getMyFile();方法:String filepath = request.getParameter("myFile"); 得到的路径:D:\VSS安装目录\users.txt方法:String filepath = ActionForm.getMyFile(); 得到的路径:D:\VSS安装目录\users.txt————————————————– strutsTest 为工程名myFile 在ActionForm中,为private String myFile; 在jsp页面中:为<html:file property="myFile"></html:file>
⑶ java File路径中如何读取“/”
转义呢,用ab//c.txt
⑷ java怎么通过文件的路径读取文件
packagefile.system.demo.exception;importjava.io.File;importjava.io.FileNotFoundException;importjava.util.Scanner;publicclassReadFile{publicstaticStringgetFile(Stringrealpath){Scannerscanner=null;Stringtext="";try{Filefile=newFile(realpath);scanner=newScanner(file);}catch(FileNotFoundExceptione){e.printStackTrace();}if(scanner!=null){while(scanner.hasNextLine()){text+=scanner.nextLine();}scanner.close();}//System.out.println(text);returntext;}staticclassInnerTest{publicstaticvoidmain(String[]args){Stringrealpath="D:\test.txt";Stringtext=getFile(realpath);System.out.println(text);}}}实现方式有很多,还可以用字节流FileInputStream,字符流FileReader等方式读取
⑸ java根据路径读取文件
直接贴代码吧。不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在C盘下有一个Users\HP\Desktop的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了这个路径,则程序会报找不到文件路径的异常。你可以对这个异常进行人性的处理,还可以在程序要向这个路径写入数据之前,创建出这个路径。import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Scanner;public class ListRoots {private static final String LOG_BASE_PATH = "C:\\Users\HP\\Desktop\\";private static ArrayList<String> mfiles = new ArrayList<String>();/*** 得到给定路径下的目录或是文件* @param strPath* @throws Exception*/private static void displayDirsOrFiles(String strPath) throws Exception {try {File f = new File(strPath);if (f.isDirectory()) {File[] fList = f.listFiles();for (int j = 0; j < fList.length; j++) {if (fList[j].isDirectory()) {System.out.println("Directory is: "+ fList[j].getPath());displayDirsOrFiles(fList[j].getPath()); // 对当前目录下仍是目录的路径进行遍历}}for (int j = 0; j < fList.length; j++) {if (fList[j].isFile()) {String name = fList[j].getPath().toString();System.out.println("Filename is: " + name);mfiles.add(fList[j].getPath());}}}} catch (Exception e) {System.err.println("Error: " + e);}}/*** 向文件中写入数据* @param dirOrfiles* @throws IOException*/private static void writeDetailToFiles(ArrayList<String> dirOrfiles) throws IOException {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");toFiles(getLogPath(), format.format(new Date()) + " — 检测到文件" + dirOrfiles.size() + "个:" + "\r\n");for (String file : dirOrfiles) {toFiles(getLogPath(), file + "\r\n");}toFiles(getLogPath(), "————————————————————————————————————————–\r\n");}/*** 获得写入数据的路径* @return*/private static String getLogPath() {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");return LOG_BASE_PATH + format.format(new Date()) + ".txt";}/*** 向dir路径下写入数据data* @param path* @param data*/private static void toFiles(String path, String data) throws IOException {File file = new File(path);if (!file.exists()) {file.createNewFile();}FileWriter fw = new FileWriter(file, true);fw.write(data);fw.flush();fw.close();}public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入待遍历目录路径(Format: F:\\a\\b):");String strPath = input.nextLine();try {displayDirsOrFiles(strPath.replace("\\", "\\\\"));writeDetailToFiles(mfiles);} catch (Exception e) {e.printStackTrace();}}}
⑹ java文件读写的文件应该放哪个路径
路径可以随意指定的,没有固定的目录要求。是根据你的实际需求还设计。
⑺ Java实现读取某个路径下的文件目录
importjavax.swing.*;
importjavax.swing.table.AbstractTableModel;
importjavax.swing.table.TableCellRenderer;
importjavax.swing.event.TreeModelListener;
importjavax.swing.event.TreeSelectionListener;
importjavax.swing.event.TreeSelectionEvent;
importjavax.swing.tree.TreeModel;
importjavax.swing.tree.TreePath;
importjavax.swing.tree.TreeCellRenderer;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.FileFilter;
importjava.util.Calendar;
importjava.util.ArrayList;
importjava.text.SimpleDateFormat;
importjava.text.MessageFormat;
/**
*@authorHardneedl
*/
{
=newDimension(300,200);
=newDimension(1024,768);
=newDimension(600,400);
privateJLabelstatusLabel;
privateJTreetree;
privateJTabledetailTable;
;
publicDimensiongetMaximumSize(){returnmaxSize;}
publicDimensiongetMinimumSize(){returnminSize;}
(){returnpreferredSize;}
publicStringgetTitle(){return"JavaExplorer";}
JavaExplorer()throwsHeadlessException{
init();
doLay();
attachListeners();
}
privatevoidinit(){
statusLabel=newJLabel(){publicColorgetForeground(){returnColor.BLUE;}};
tree=newJTree(newFileTreeModel());
tree.setCellRenderer(newDirCellRenderer());
detailTable=newJTable(tableModel=newFileTableModel());
detailTable.getColumnModel().getColumn(2).setCellRenderer(newTableCellRenderer(){
privateJLabellabel=newJLabel();
=newSimpleDateFormat("yyyy年mm月dd日HH时MM分ss秒");
(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){
if(valueinstanceofCalendar){
Calendarcal=(Calendar)value;
label.setText(format.format(cal.getTime()));
}
returnlabel;
}
});
detailTable.getColumnModel().getColumn(0).setCellRenderer(newTableCellRenderer(){
privateJLabellabel=newJLabel();
(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){
if(valueinstanceofFile){
Filef=(File)value;
label.setText(f.getName());
label.setForeground(f.isDirectory()?Color.RED:Color.BLACK);
}
returnlabel;
}
});
}
privatevoiddoLay(){
Containercontainer=getContentPane();
JSplitPanesplitPane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,newJScrollPane(tree),newJScrollPane(detailTable));
container.add(splitPane,BorderLayout.CENTER);
container.add(statusLabel,BorderLayout.SOUTH);
pack();
}
privatevoidattachListeners(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tree.addTreeSelectionListener(newSelectionListener());
tree.addTreeSelectionListener(new_DirSelectionListener());
DirCellSelectedListenerck=newDirCellSelectedListener(tree);
detailTable.addKeyListener(ck);
detailTable.addMouseListener(ck);
}
publicstaticvoidmain(String[]args){
newJavaExplorer().setVisible(true);
}
{
staticfinalStringroot="我的电脑";
privateFile[]rootFiles;
=newFileFilter(){
publicbooleanaccept(Filef){returnf.isDirectory();}
};
privateFileTreeModel(){rootFiles=File.listRoots();}
publicObjectgetRoot(){returnroot;}
publicObjectgetChild(Objectparent,intindex){
if(parent==getRoot())returnrootFiles[index];
if(parentinstanceofFile){
Filepf=(File)parent;
returnpf.listFiles(dirFilter)[index];
}
returnnull;
}
publicintgetChildCount(Objectparent){
if(parent==getRoot())returnrootFiles.length;
if(parentinstanceofFile){
Filepf=(File)parent;
File[]fs=pf.listFiles(dirFilter);
returnfs==null?0:fs.length;
}
return0;
}
publicbooleanisLeaf(Objectnode){returnfalse;}
publicvoidvalueForPathChanged(TreePathpath,ObjectnewValue){}
(TreeModelListenerl){}
(TreeModelListenerl){}
publicintgetIndexOfChild(Objectparent,Objectchild){
if(parent==getRoot()){
for(inti=0,j=rootFiles.length;i<j;i++)
if(rootFiles[i]==child)returni;
}
if(parentinstanceofFile){
Filepf=(File)parent;
File[]fs=pf.listFiles(dirFilter);
for(inti=0,j=fs.length;i<j;i++){
if(fs[i].equals(child))returni;
}
}
return-1;
}
}
{
publicintgetRowCount(){returndir==null||dir.isFile()?0:dir.listFiles().length;}
publicintgetColumnCount(){return3;}
privateFiledir;
privatevoidsetDir(Filedir){
this.dir=dir;
fireTableDataChanged();
}
publicClass<?>getColumnClass(intcolumnIndex){
switch(columnIndex){
case0:returnFile.class;
case1:returnInteger.class;
case2:returnCalendar.class;
default:returnString.class;
}
}
publicStringgetColumnName(intcolumn){
switch(column){
case0:return"名称";
case1:return"大小";
case2:return"修改日期";
default:return"";
}
}
publicObjectgetValueAt(introwIndex,intcolumnIndex){
File[]fs=dir.listFiles();
Filef=fs[rowIndex];
switch(columnIndex){
case0:returnf;
case1:
if(f.isDirectory())returnnull;
try{
if(f.canRead())
returnnewFileInputStream(f).available();
}catch(IOExceptione){
e.printStackTrace();
}
case2:
Calendarcl=Calendar.getInstance();
cl.setTimeInMillis(f.lastModified());
returncl;
}
returnnull;
}
}
privateclass_{
publicvoidvalueChanged(TreeSelectionEvente){
TreePathpath=e.getNewLeadSelectionPath();
if(path!=null){
Objectobj=path.getLastPathComponent();
if(objinstanceofFile){
Filef=(File)obj;
File[]fs=f.listFiles();
statusLabel.setText(fs==null?null:MessageFormat.format("{0}个文件",fs.length));
}
else
statusLabel.setText(null);
}
}
}
{
publicbooleanisOpaque(){returntrue;}
(JTreetree,Objectvalue,booleanselected,booleanexpanded,booleanleaf,introw,booleanhasFocus){
if(valueinstanceofFile){
Strings=((File)value).getName();
setText(s.isEmpty()?value.toString():s);
}
else
setText(value.toString());
setForeground(selected?Color.BLUE:Color.BLACK);
setBackground(selected?Color.YELLOW:Color.WHITE);
returnthis;
}
}
{
publicvoidvalueChanged(TreeSelectionEvente){
Objectobj=e.getNewLeadSelectionPath().getLastPathComponent();
if(objinstanceofFile){
tableModel.setDir((File)obj);
}
}
}
,MouseListener{
privateJTreetree;
(JTreet){tree=t;}
privatevoidaction(InputEvente){
if(einstanceofMouseEvent){
}
if(einstanceofKeyEvent){
}
}
privatevoidexpand(Filef){
if(f.isDirectory()){
ArrayList<File>L=newArrayList<File>();
L.add(f);
FileparentFile=f.getParentFile();
while(parentFile!=null){
L.add(parentFile);
parentFile=parentFile.getParentFile();
}
TreePathtreePath=newTreePath(FileTreeModel.root);
for(inti=L.size()-1;i>-1;i–){
treePath=treePath.pathByAddingChild(L.get(i));
}
tree.setSelectionPath(treePath);
}
}
publicvoidkeyTyped(KeyEvente){}
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()!=KeyEvent.VK_ENTER)return;
if(e.getSource()==detailTable){
introw=detailTable.getSelectedRow();
if(row!=-1){
Filef=(File)detailTable.getValueAt(row,0);
expand(f);
}
}
}
publicvoidkeyReleased(KeyEvente){
}
publicvoidmouseClicked(MouseEvente){
if(e.getClickCount()==2){
if(e.getSource()==detailTable){
introw=detailTable.getSelectedRow();
if(row!=-1){
Filef=(File)detailTable.getValueAt(row,0);
expand(f);
}
}
}
}
publicvoidmousePressed(MouseEvente){
}
publicvoidmouseReleased(MouseEvente){
}
publicvoidmouseEntered(MouseEvente){
}
publicvoidmouseExited(MouseEvente){
}
}
}
⑻ java读取本地文件路径怎么写
构造抄File对象,使用File对象取上级目录,再取绝对路径 File f = new File("c:\\temp\\01\\1.txt"); if(f.exists()){ System.out.println(f.getParentFile().getAbsolutePath()); }
⑼ java文件路径读取问题
把你的代码第一种情况打了一遍!我测试结果:
packagecn.test;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;publicclassReadTest{/***@paramargs*/publicstaticvoidmain(String[]args){Stringpath="G:\1.txt";try{out(path);System.out.println("读取成功!");}catch(IOExceptione){System.out.println("读取失败!");e.printStackTrace();}}publicstaticvoidout(Stringpath)throwsIOException{Filefile=newFile(path);if(!file.exists()){System.out.println("文件不存在!");}BufferedReaderbr=newBufferedReader(newFileReader(file));Stringline="";while((line=br.readLine())!=null){}}}
这样结果是:读取成功!
将 String path = "G:\1.txt"; 这句代码里面斜杆添加或减少一个会出现下面异常:
文件不存在!读取失败!java.io.FileNotFoundException: G:.txt (文件名、目录名或卷标语法不正确。)at java.io.FileInputStream.open(Native Method)at java.io.FileInputStream.<init>(FileInputStream.java:106)at java.io.FileReader.<init>(FileReader.java:55)at cn.test.ReadTest.out(ReadTest.java:32)at cn.test.ReadTest.main(ReadTest.java:18)
其实就是这个方法:
private native void open(String name) throws FileNotFoundException;
它在new出FileInputStream对象的时候调用上面的那个方法去访问本地磁盘文件,但是给出字符串有问题!抛出了FileNotFoundException异常,它是本地方法,具体什么情况会抛出你这个异常一样的信息!我自己测试了下:
这三种情况都会出现那种问题!
//String path = "Gd:\1.txt";//String path = "G:\1.txt";String path = "G:1.txt";
String path = "G:\1.txt";这时候应该是不会的,你可能修改了没保存!导致抛出的那个异常!!
⑽ java读取文件路径
你的头是e://tttt11.PNG不是e://tttt11//1.PNG???如果头是e://tttt11//1.PNG,filepath没有用,去掉。这段这么改:for (i=0; i <= str.length(); i += 2) { if (i == str.length() – 1 || i == str.length() – 2) break; else fileName = str.substring(i); } // System.out.println(filePath); if(ii!=100) fileName = str.substring(i);………..后面不改.如果头是e://tttt11.PNG,那这个和下面的循环规律不一样,大概写下:if(ii==1)filePath=".PNG";把我上面修改后的代码加到else里就行了(用我上面修改后的代码,不然你的尾还是显不出来).
未经允许不得转载:山九号 » java文件读取路径|java读取文件路径问题