2017-05-04 65 views
0

我的代码确实读取和写入文件,但不是每个值的新行,而是将每个值打印在一行中。如何将每个值添加到单独的行?

// 2 points 
static void Q1(String inputFilename, String outputFilename) { 
    // You are given a csv file (inputFilename) with all the data on a single line. Separate the 
    // values by commas and write each value on a separate line in a new file (outputFilename) 

     String data = ""; 
     try { 
      for(String s :Files.readAllLines(Paths.get(inputFilename))){ 
       data = data + s; 
      } 
      Files.write(Paths.get(outputFilename), data.getBytes()); 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
} 

这样平地机说:

所有的
Incorrect on input: [data/oneLine0.csv, output0.txt] 
Expected output : overwrought plastic bomb 
wrapped litter basket 
obstetric matter of law 
diabetic stretching 
spatial marathi 
continental prescott 
reproductive john henry o'hara 
hollow beta blocker 
stereotyped national aeronautics and space administration 
irremediable st. olaf 
brunet fibrosis 
embarrassed dwarf elm 
superficial harrier 
disparaging whetstone 
consecrate agony 
impacted lampoon 
nefarious textile 
some other organisation 
Your output  : overwrought plastic bomb,wrapped litter basket,obstetric matter of law,diabetic stretching,spatial marathi,continental prescott,reproductive john henry o'hara,hollow beta blocker,stereotyped national aeronautics and space administration,irremediable st. olaf,brunet fibrosis,embarrassed dwarf elm,superficial harrier,disparaging whetstone,consecrate agony,impacted lampoon,nefarious textile,some other organisation 

回答

3
String data = ""; 
try { 
    // input file has all data on one line, for loop isn't necessary here 
    // input file has elements separated by comma characters 
    for(String s : Files.readAllLines(Paths.get(inputFilename))){ 
     data = data + s; 
    } 
    String[] separated = data.split(",");// does not handle embedded commas well 
    data = ""; 
    // output file should have each comma separated value on its own line 
    for (String t : separated) { 
     data = data + t + System.getProperty("line.separator"); 
    } 
    Files.write(Paths.get(outputFilename), data.getBytes()); 
} 
3

首先,你需要从CSV文件中删除逗号。我建议使用
s = s.replace(",","");此外,您必须附加一个\n到每个字符串,使其出现在一个新的行。所以,你应该添加s += "\n";这样产生的代码:

// 2 points 
static void Q1(String inputFilename, String outputFilename) { 
// You are given a csv file (inputFilename) with all the data on a single line. Separate the 
// values by commas and write each value on a separate line in a new file (outputFilename) 

    String data = ""; 
    try { 
     for(String s :Files.readAllLines(Paths.get(inputFilename))){ 
      s.replace(",",""); 
      s += "\n"; 
      data = data + s; 
     } 
     Files.write(Paths.get(outputFilename), data.getBytes()); 
    } catch (IOException e) { 

     e.printStackTrace(); 
    } 
} 
相关问题