A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李杨 黑马帝   /  2012-1-31 02:32  /  2166 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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"  这样的字符串传递给构造方法中。
如果底层是强制的不能这么做,那么也就不能了。
不过还是想听听大家的说法。




4 个回复

倒序浏览
我觉得,你应该获取一下自己目录的当前绝对路径,然后把他封装成字符串对象,传给file中。
我以前写过一个GUI的小程序,具体代码我忘了。
还有就是,这种方式  new File("c:\hello.txt").getAbsolutePath().replace("\\","/");
你试试,应该可以的吧.....

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
我觉得new FileTest1("c:" + File.separator + "hello.txt");这种方法比较通用,因为windows和linux上目录分割符是不同的,转义字符也是不同的,使用 File.separator 就可解决这种差异

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
  使用File的separator等同与'\',并且跨平台。例如:"C:" + File.separator + "hello.txt";

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
在输入输出流中传递文件名参数时 new FileReader("c:\hello.txt") 这种格式是错误的,因为在java中反斜线“\”是转义字符,
要想在java中表示反斜线“\” 必须进行转义:即写成 "c:\\hello.txt" 。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马