请教,文件输入输出的问题。。

乐之者v 2016-06-12 09:47:06
我想从A文件读取数据,然后经过处理,写入B文件。。
但是每次当A文件最后面有几行空格,我就不知道怎么处理掉这几行空格

类似的Demo如下:

public class ReadDemo {
public static void main(String[] args) throws Exception{
read("F:\\文件输入.txt", "F:\\文件输出.txt");

}

public static void read(String filename1,String filename2) throws Exception{
BufferedReader br = new BufferedReader(new FileReader(filename1));
BufferedWriter bw = new BufferedWriter(new FileWriter(filename2));
String line;
while((line = br.readLine())!= null ){ //读取每一行的数据
if(line==" ") return; //这句判断,我想用来处理掉文件最后面那几行没用的空格的。。结果总是不起作用
System.out.println("line:"+line);
String phoneNumber = line.trim();
bw.write(phoneNumber+":");
bw.write("\n");
}
br.close();
bw.close();
}
}


我的文件输出如下:
line:17872345
line:1234568111
line:17872345
line:17872345
line:17872345
line:
最后面这一行里,循环到这里,line明明就是" ",
为什么我的判断会不起作用呢?最后空行还是显示出来了。。
求解。。
...全文
135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35291968 2016-06-13
  • 打赏
  • 举报
回复
问题在于String是引用类型,使用==号判别的是两个引用类型是否指向同一个对象,显然此处不是。 而String类型重写了equals方法,可用于判别两字符串是否相同,详见API
西湖月天 2016-06-13
  • 打赏
  • 举报
回复
引用 5 楼 hemowolf 的回复:
字符串用 == 判断是最不可靠的
可以用" ".equle(line)
小灰狼 2016-06-13
  • 打赏
  • 举报
回复
字符串用 == 判断是最不可靠的
小灰狼 2016-06-13
  • 打赏
  • 举报
回复
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class ReadDemo {
    public static void main(String[] args) throws Exception{   
        read("F:\\文件输入.txt", "F:\\文件输出.txt");
 
  }
 
   public static void read(String filename1,String filename2) throws Exception{
    BufferedReader br = new BufferedReader(new FileReader(filename1));
    BufferedWriter bw = new BufferedWriter(new FileWriter(filename2));
    String line;
    while((line = br.readLine())!= null ){  //读取每一行的数据
           if(line.trim().length() == 0)  return;         //这句判断,我想用来处理掉文件最后面那几行没用的空格的。。结果总是不起作用
        System.out.println("line:"+line);
        String phoneNumber = line.trim();
        bw.write(phoneNumber+":");
        bw.write("\n");
    }
    br.close();
    bw.close();
 }
}
shadon178 2016-06-12
  • 打赏
  • 举报
回复
空行的判断最好trim一下
乐之者v 2016-06-12
  • 打赏
  • 举报
回复
java如何处理掉文件中的空行。。 我思考了两三天都没搞定,刚才拼命搜索,好像解决了。 加一条判断空行的语句就行了。。。 if(line.isEmpty()) continue; 但是,我还是不太明白。。我写的 if(line==" ") continue; 为什么不行?空格跟空行不一样的原因吗?
HD_XB 2016-06-12
  • 打赏
  • 举报
回复
if("".equals(line.trim()))

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧