将部分行从1个文本复制到第2个文本文件

时间:2014-11-20 18:42:41

标签: java file

我正在进行项目,我需要将每行的某些部分从第一个文本文件复制到另一个文本。在第一个文本中,每个数据由拆分器--@(我使用过)分隔。

我想获得实际4个部分的前两部分共3个分割器Ex:

Hello--@StackOverflow--@BMWCar--@Bye.

我只想获取前两部分.ie。

Hello--@StackOverflow 

从第一个文本文件的所有行到第二个文本文件。我已经尝试了一切,但无法让它发挥作用。请帮我解决这个问题。 :)

4 个答案:

答案 0 :(得分:0)

如果你期望用破折号命名,在我看来最好用的是String.split:

String test = "Hel-lo--@StackOverflow--@BMWCar--@Bye";

String[] sp = test.split("--@");

for(String name : Arrays.copyOfRange(sp, 0, 2))
{
    System.out.println(name);
}

答案 1 :(得分:0)

对于您阅读的每一行,请执行以下操作:

String[] sp = line.split("--@",2);
String result = sp[0]+"--@"+sp[1];

答案 2 :(得分:0)

我迟到了,但是下面的代码也会有效:

String str = "Hello--@StackOverflow--@BMWCar--@Bye.";       
String strResult = str.split("(?<!\\G\\w+)(?:--@)")[0];
System.out.println(strResult);

\G是上一场比赛,(?<!regex)是负面的后卫。

<强> [更新]

在您的情况下,我们可以使用以下代码吗?解决方案基于您提供的文件

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Test{
    public static void main (String[] args) throws IOException
    {
        BufferedReader in = new BufferedReader(new FileReader("abc.txt")); 
        String line; 
        while((line = in.readLine()) != null) 
        {
            System.out.println(line.substring(0,line.lastIndexOf("--@")));
        }

        in.close();
    }
}

答案 3 :(得分:-1)

首先,要获取文本文件中的所有行,请尝试使用while循环。当您从一个文件读入时,输出到第二个文件。根据条件分割每一行。

String inLine = in.nextLine();
String[] parts = inLine.split("--@");
String toWrite = parts[0] + " " + parts[1];
outLine.write(toWrite);

应该很容易搞清楚。