在java中读写记事本

在java中读写记事本,java,file,file-io,core,Java,File,File Io,Core,我在记事本中有一个字符串,就像这样 记事本中的文本: date amount intrest tenure debitamount name address state city zipcode phone altphone mailid refaddress ref refphoneno emptype employment 12/11/1987 12345 3.5 144 32456 durga f rao 456 under road dallas dl 2435 2222-22-2

我在记事本中有一个字符串,就像这样

记事本中的文本:

date amount intrest tenure debitamount name address state city zipcode phone altphone mailid refaddress ref  refphoneno emptype employment


12/11/1987 12345 3.5 144 32456 durga f rao 456 under road
dallas dl 2435 2222-22-2222 2222-22-2222 durgafrao@gmail.com
165 nala road raj 22-22-22-2222 it 12
15/05/1986 2345 6.4 144 45789 rama k nand 789 residensy  
newyork ny 2222-22-2222 2222-22-2222 ramaknand@yahoomail.com
189 ring road hen  22-22-22-22-2222 it 12
16/12/1985 1234 6.5 144 35265 rama j rao 123 dura residensy meknoor
mn 2222-22-2222 2222-22-2222 ramajrao@orkut.com 891 cing road vinky
22-22-22-2222 it 12
12/11/1987 12345 3.5 144 32456 durga f rao 456 under road dallas dl
2435 2222-22-2222 2222-22-2222 durgafrao@gmail.com 165 nala road raj
22-22-22-2222 it 12


         out put should be like below
in between name and address single space and all other double space


12/11/1987  12345  3.5  144  32456  durga f rao  456 under road
dallas  dl  2435  2222-22-2222  2222-22-2222  durgaao@gmail.com
165 nala road  raj  22-22-22-2222  it  12
15/05/1986  2345  6.4  144  45789  rama k nand  789 residensy  
newyork  ny  2222-22-2222 2222-22-2222  ramaad@yahoomail.com
189 ring road  hen  22-22-22-22-2222  it  12
16/12/1985  1234  6.5  144  35265  rama j rao  123 dura residensy  meknoor
mn  2222-22-2222  2222-22-2222  ramajo@orkut.com  891 cing road  vinky
22-22-22-2222  it  12
12/11/1987  12345  3.5  144  32456  dura f rao  456 under road  dallas  dl
2435  2222-22-2222  2222-22-2222  durga@gmail.com  165 nala road  raj
22-22-22-2222  it  12
我希望我的输出应该如下所示 在名称和地址之间的单个空格和所有其他双空格

我写了下面的代码,但无法获得所需的输出

有人能帮我吗

我试过的代码:

public static String newLine = System.getProperty("line.separator");


    public static void main(String args[]){
        FileWriter iWrite=null;

         try {
             iWrite = new FileWriter("C:/Documents and Settings/pavan/My Documents/output.txt");
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } 

        try {
List<String> lines = FileUtils.readLines(new File("C:/Documents and Settings/pavan/My Documents/input.txt"));

        for(String lines1:lines){

            iWrite.write(lines1);

            iWrite.write(newLine);
        }
        iWrite.close();

        } catch (IOException e) {
            e.printStackTrace();
        }


    }
公共静态字符串newLine=System.getProperty(“line.separator”);
公共静态void main(字符串参数[]){
FileWriter-iWrite=null;
试一试{
iWrite=newfilewriter(“C:/Documents and Settings/pavan/My Documents/output.txt”);
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
} 
试一试{
列表行=FileUtils.readLines(新文件(“C:/Documents and Settings/pavan/My Documents/input.txt”);
用于(字符串行1:行){
i write.write(第1行);
i write.write(换行符);
}
iWrite.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}

这是一个家庭作业问题,所以我没有想到一个最佳解决方案,但这里有一个sudo代码,告诉你如果需要可以做什么

在此之前,假设数据实际上位于基于标题的一行中:

1987年12月11日达拉斯dl 2435 2222-22-2222-22公路下的12345 3.5 144 32456 durga f rao 456durgafrao@gmail.comnala路165号raj 22-22-22-2222 it 12

  • 创建数组的ArrayList aka
    ArrayList
  • 对于阅读的每一行,使用
    split(“”)或
    split(“\s”)
    根据空格将换行符拆分为字符串
  • 一旦所有行被拆分并存储在arraylist中,就可以遍历该列表
  • 在字符串数组列表中,可以使用hack遍历数组
  • 问题是,您知道在哪一点需要添加额外的空间,因此在数组中,当您到达特定位置时,可以添加额外的空间。在其他任何地方,您都可以只附加一个空格
同样,这不是最佳解决方案

至于您当前的代码,您所做的只是读取一行并在将其写回文件之前附加一个换行符。因此,您的代码所做的一切都是

a a a

b b b

c c c c

进入

a a a

b b b

c c c c


本质上,做的不多。

考虑使用
PrintWriter
而不是
FileWriter
。请在问题中提供完整信息,不要在外部发布链接,而是发布程序的预期和实际输出。另外,可能需要在
iWrite.write
语句中使用。除非有可用的输入格式规范,否则在读取带空格的字段时会遇到问题。