繁体   English   中英

在Java中读取和写入记事本

[英]Reading from and writing to a Notepad in java

我在记事本中有这样的文本字符串

记事本中的文本:

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();
        }


    }

这闻到一个作业问题,所以我没有考虑最佳解决方案,但这是您需要时可以采取的措施的sudo代码。

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

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

  • 创建一个又名ArrayList<String[]>
  • 对于您阅读的每一行,请使用split(" ")split("\\s")将换行符分隔为基于空格的字符串
  • 将所有行拆分并存储在arraylist中后,您可以遍历列表
  • 在字符串数组列表中,您可以通过修改来遍历数组
  • hack是您知道需要在哪一点添加额外的空间,因此,在到达特定位置的数组中,您可以添加额外的空间。 您可以在其他任何地方仅添加一个空格。

同样,这不是最佳解决方案。

对于当前代码,您要做的只是读取一行并在将其写回到文件之前附加一个newLine字符。 所以你所有的代码正在做

aa

bbb

抄送

进入

aa

bbb

抄送

从本质上讲,没有做太多事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM