黑马程序员技术交流社区

标题: 文件对象参数路径问题 [打印本页]

作者: 李杨    时间: 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