黑马程序员技术交流社区

标题: 问一个关于读取路径的问题? [打印本页]

作者: 李恒权    时间: 2014-3-11 18:17
标题: 问一个关于读取路径的问题?
本帖最后由 czwanglei 于 2014-3-13 14:30 编辑

StreamReader str = new StreamReader(@"D:\1\文件文本.txt",Encoding.GetEncoding("gb2312"));
string s=str.ReadToEnd();

我在运行的时候报错了,如下:
”对路径“D:\1”的访问被拒绝。“(1是一个文件夹)
这个是我的电脑问题还是我的写法有问题?
作者: zhl406893081    时间: 2014-3-11 19:08
StreamReader是从文件中读取字符,有中文字符要加Encoding.GetEncoding("GB2312").
这个可以用来读文件夹吗?
作者: cancle    时间: 2014-3-11 19:27
额,既然1是文件夹,那你怎么读取文件夹?你试着把1改为1.txt试试
作者: 李恒权    时间: 2014-3-11 19:49
cancle 发表于 2014-3-11 19:27
额,既然1是文件夹,那你怎么读取文件夹?你试着把1改为1.txt试试

StreamReader str = new StreamReader(@"D:\1\文件文本.txt",Encoding.GetEncoding("gb2312"));改成这样了也不行啊
作者: 流失的温度0    时间: 2014-3-11 19:53
应该是你电脑的问题,可能是操作权限不足的。
作者: 夢醒了⊙﹏⊙b心    时间: 2014-3-11 20:28
亲 这个问题你要使用排除法  首先你看一下你是否具有删除这个文件的权限,假如你不具有操作这个文件的权限,那么你属性那个文件 给那个文件给予相应的权限 如果你已经具有这个文件的权限 那么表明streamreader这个部分有问题  是streamreader报错 还是str.ReadToEnd()这个方法报错 出错的地方不一样 处理的流程也会不一样
作者: Monkey·D·Chas    时间: 2014-3-11 21:52
编程的时候。老师教导我们一般都写相对路径。换一个运行环境的时候就无法找到路径  比如我在d:\java\test\下编写一个程序。需要读取d:\Java\test\image\里面的图片  则代码需要写src=./image/img.jpg 。当我把程序拷到其他地方时 路径不会报错!  你试试把路径改成相对路径试试!
作者: §風過無痕§    时间: 2014-3-11 21:52
首先确定你的对该文件的操作要有足够的权限    第二  设置断点 进行调试 监视     也可以改变文本文件的存储地方 用相对路径试试
作者: cancle    时间: 2014-3-12 13:25
李恒权 发表于 2014-3-11 19:49
StreamReader str = new StreamReader(@"D:\1\文件文本.txt",Encoding.GetEncoding("gb2312"));改成这样 ...

额,如果是编译没通过请把异常原因复制给我,如果编译通过但是什么也没有的话,请尝试着将<文件文本.txt>写入点东西再试试。。。
作者: 李恒权    时间: 2014-3-12 21:30
cancle 发表于 2014-3-12 13:25
额,如果是编译没通过请把异常原因复制给我,如果编译通过但是什么也没有的话,请尝试着将写入点东西再试 ...

编译不会错,就是运行时出现那种情况,我也在里面写了东西。可也是不行。
作者: cancle    时间: 2014-3-12 21:58
李恒权 发表于 2014-3-12 21:30
编译不会错,就是运行时出现那种情况,我也在里面写了东西。可也是不行。 ...

额,要不你把你的代码复制过来,把异常截个图,我看看
作者: 李恒权    时间: 2014-3-13 01:10
cancle 发表于 2014-3-12 21:58
额,要不你把你的代码复制过来,把异常截个图,我看看

代码也就那句话而已。

QQ截图20140312235352.png (130.6 KB, 下载次数: 3)

QQ截图20140312235352.png

作者: cancle    时间: 2014-3-13 12:35
额,你要搞清楚StreamReader 和StreamWrite类得到的只是字符,而不是字符串,所以你需要把这个字符输出为字符串。下面的代码你看看,是否能看懂。
  1. StreamReader str = new StreamReader(@"D:\1\文本文件.txt", Encoding.Default);
  2. Console.WriteLine(str.ReadLine());
  3. Console.ReadKey();
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2