2016-03-04 196 views
1
import java.util.*; 
import java.io.*; 

public class readFiles2 { 

public static void main(String[] args) throws IOException{ 
    // TODO Auto-generated method stub 

    BufferedReader reader = new BufferedReader(new FileReader("someFile.txt")); 

    try{ 
     StringBuilder text = new StringBuilder(); 
     String readStringLine = reader.readLine(); 
     String[] lines= {}; 


     for(int i = 0; readStringLine != null; i++){ 
      readStringLine = reader.readLine(); 

      //Trying to save seperate lines of text in an array. 
      lines[i] = readStringLine.toString(); 
     } 

    } 
    finally{ 
     reader.close(); 
    } 


} 

所以我想要做的是将单独的字符串从.txt文件保存到String[]阵列。我现在有点不知所措,不知道我还能做什么。Java:如何将单独的文本行从.txt文件保存到字符串数组中?

+0

使用BufferedWriter调用append写文本和newLine来完成添加新行(对于每行) – MadProgrammer

+0

Is你的代码不工作?我看到的一个问题是,你的数组永远不会给出一个大小,所以当你调用线[我]它会崩溃 –

回答

1

既然你不知道有多少串有你的阵列,您可能希望把字符串列表,并转换成数组结尾:

String readStringLine; 
List<String> lines = new ArrayList<String>(); 

while((readStringLine = reader.readLine()) != null) { 
    lines.add(readStringLine); 
} 

String[] linesArray = lines.toArray(new String[lines.size()]); 

编辑: Simpified使用while循环来收集阅读器中的行。

0

使用autocloseable接口和Java 8流:

String [] stringsArray = null; 
try(BufferedReader br = new BufferedReader(new FileReader("someFile.txt"))) { 
    List<String> strings = new ArrayList<>(); 
    br.lines().forEach(c -> strings.add(c)); 
    stringsArray = strings.toArray(new String[strings.size()]); 
} 

您需要的Java 8运行这段代码

1

ArrayList<String> line = new ArrayList<>(); FileReader file = new FileReader(file.txt); BufferedReader reader = new BufferedReader(file); while (reader.ready()) { line.add(reader.readLine()); reader.close(); file.close(); }

接取,使用line.get(我);其中i> = 0和i < = array.size

相关问题