我有一个文本文件 - > 23/34< - 我正在研究Java程序。
我想将它们存储在String One = 23
和anotherString = 34
中,然后将它们放在一个字符串中,将它们写在文本文件中,但它不起作用。 :(每次它休息。也许是因为拆分方法,但我不知道如何分开它们。
try {
BufferedReader in = new BufferedReader (new FileReader (textfile) );
try {
while( (textfile= in.readLine()) != null ) {
String[] parts = textfileString.split("/");
String one = parts[0];
}
}
}
当我打印或存储one + "/" + anotherString
时,它会在一行中进行换行,但我希望将它们全部放在一行中。 :(
答案 0 :(得分:1)
public static void main(String[] args) throws Exception {
File file = new File("output.txt");
if (!file.exists()) {
file.createNewFile();
}
BufferedWriter bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()));
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
String line = null;
while ((line = br.readLine()) != null) {
String string1 = line.split("/")[0];
String string2 = line.split("/")[1];
bw.write(string1 + string2 + "\n");
bw.flush();
}
br.close();
bw.close();
}
档案:
23/34
导致output.txt包含:
2334
您需要读取每一行,并将其拆分为您指定的字符(“/”)。然后将string1分配给第一个分割,将string2分配给第二个分割。然后,您可以根据需要使用变量。要将它们输出到文件,只需将它们与+
运算符一起附加。
答案 1 :(得分:0)
您从未向我们展示过如何编写文件,因此我们无法真正帮助您完成代码。这是一种更现代的方法,但我认为它可以满足您的需求。
File infile = new File("input.txt");
File outfile = new File("output.txt");
try (BufferedReader reader = Files.newBufferedReader(infile.toPath());
BufferedWriter writer = Files.newBufferedWriter(outfile.toPath())) {
String line;
while ((line = reader.readLine()) != null) {
String parts[] = line.split("/");
String one = parts[0];
String two = parts[1];
writer.write(one + "/" + two);
}
} catch (IOException ex) {
System.err.println(ex.getLocalizedMessage());
}
答案 2 :(得分:0)
InputStream stream = this.getClass().getResourceAsStream("./test.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String currentLine;
try {
while ((currentLine = reader.readLine()) != null) {
String[] parts = currentLine.split("/");
System.out.println(parts[0] + "/" + parts[1]);
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}