黑马程序员技术交流社区
标题:
文件对象参数路径问题
[打印本页]
作者:
李杨
时间:
2012-1-31 02:32
标题:
文件对象参数路径问题
package Test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileTest1
{
BufferedReader br = null;
FileTest1(String fileName)
{
try
{
br = new BufferedReader(new FileReader(fileName));
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
printResult();
}
private void printResult()
{
String line = null;
try
{
while(null != (line = br.readLine()))
{
System.out.println(line);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception
{
new FileTest1("c:" + File.separator + "hello.txt");
new FileTest1("c:\\hello.txt");
new FileTest1("c:/hello.txt");
}
}
我要说明的问题是我想用 "c:\hello.txt" 做参数有没有什么办法?
在很多编程 语言中\只能用做转移用如果我不用\\可不可把 "c:\hello.txt" 这样的字符串传递给构造方法中。
如果底层是强制的不能这么做,那么也就不能了。
不过还是想听听大家的说法。
作者:
杜明辉
时间:
2012-2-8 21:22
我觉得,你应该获取一下自己目录的当前绝对路径,然后把他封装成字符串对象,传给file中。
我以前写过一个GUI的小程序,具体代码我忘了。
还有就是,这种方式 new File("c:\hello.txt").getAbsolutePath().replace("\\","/");
你试试,应该可以的吧.....
作者:
彭泳
时间:
2012-2-8 21:27
我觉得new FileTest1("c:" + File.separator + "hello.txt");这种方法比较通用,因为windows和linux上目录分割符是不同的,转义字符也是不同的,使用 File.separator 就可解决这种差异
作者:
彭沛东
时间:
2012-2-8 21:33
使用File的separator等同与'\',并且跨平台。例如:"C:" + File.separator + "hello.txt";
作者:
余海龙
时间:
2012-2-8 21:33
在输入输出流中传递文件名参数时 new FileReader("c:\hello.txt") 这种格式是错误的,因为在java中反斜线“\”是转义字符,
要想在java中表示反斜线“\” 必须进行转义:即写成 "c:\\hello.txt" 。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2