2015-01-18 3 views
-1

он у меня установлен так, что он будет читать файл и разбить его на толстой кишке в то время как он имеет следующую строку, которая находится здесь:Получение содержимого файла, затем его печать в отдельный файл?

while (s.hasNext()) { 
     String line = s.nextLine(); 
     String[] words = line.split("\\s*:\\s*"); 
     //splits the file at colons 

Что я тогда хочу сделать это пишу эти строки в другую текстовый файл, я знаю, что это основной вопрос, но я новичок в этом, и это очень поможет.

System.out.println(hteam + " " + "[" + hscore + "]" + " " + "|" + " " + ateam + " " + "[" + ascore + "]"); //output the data from the file in the format requested 

Это код, который я использую, чтобы написать его на консоль, но то, что я хочу сделать, это сделать так, чтобы вместо того, чтобы писать на консоль будет записывать его в отдельный текстовый файл.

+0

Dont использовать \\ с * просто разделить вашу линию ":" – SMA

+0

Прочитайте учебник Java IO, и попробовать что-то. http://docs.oracle.com/javase/tutorial/essential/io/index.html –

+0

Я написал в файлы, прежде чем я просто не знаю, как я буду писать из одного файла в другой – robert

ответ

0

Вы можете использовать нижеследующий код для этого.

int count=0; 
String line=""; 
String[] words=new String[40]; 
try{ 
    while (s.hasNext()) { 
    String fileName="the-file-name"+count+".txt"; 
    PrintWriter writer = new PrintWriter(fileName, "UTF-8"); 

     line =s.nextLine(); 
      words = line.split("\\s*:\\s*"); 

      for(int i=0;i<words.length;i++){ 
       writer.println(words[i]); 
     } 

     writer.close(); 

} 

}catch(Exception e){ 

e.printStackTrace(); 
} 
+0

Я пробовал это, но он только написал последнюю строку текстового файла в новый текстовый файл, любую идею, почему это может быть? – robert

+0

попробуйте напечатать массив слов в консоли, чтобы проверить, содержит ли он все строки из вашего первого файла. – silentprogrammer

+0

использовать 'line.split (": ");' а не 'line.split (" \\ s *: \\ s * ");' если вы хотите разбить с двоеточием – silentprogrammer

0

Вы можете сначала создать новый файл, установив его путь и затем записать на него.

File file = new File("/home/user/filename.txt"); 
FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
BufferedWriter bw = new BufferedWriter(fw); 

for(i = 0; i < words.length; i++) { 
    bw.write(content); 
} 
bw.close(); 
+0

Это несколько бесполезно; главным образом потому, что он не закрывает ресурс в 'try with resources' или даже' finally'. Вам также необходимо распечатать строки, вы можете использовать «PrintWriter» и вызвать «println». –

Смежные вопросы