我从临时文件中读取并将其写入永久文件,但某处字符串丢失了所有空格 private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
String b, filename;
b = null;
filename = (textfieldb.getText());
try {
// TODO add your handling code here:
dispose();
Scanner scan;
scan = new Scanner(new File("TempSave.txt"));
StringBuilder sb = new StringBuilder();
while (scan.hasNext()) {
sb.append(scan.next());
}
b = sb.toString();
String c;
c = b;
FileWriter fw = null;
try {
fw = new FileWriter(filename + ".txt");
} catch (IOException ex) {
Logger.getLogger(hiudsjh.class.getName()).log(Level.SEVERE, null, ex);
}
PrintWriter pw = new PrintWriter(fw);
pw.print(c);
pw.close();
System.out.println(c);
} catch (FileNotFoundException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
dispose();
hiudsjh x = new hiudsjh();
x.setVisible(true);
System.out.println(b);
}没有错误消息只是输出应该是剩余空格的文件
4 回答

凤凰求蛊
TA贡献1825条经验 获得超4个赞
而不是hasNext()
和next()
你没有得到空格,使用hasNextLine()
和nextLine()
逐行读取filr并在每行后追加行分隔符:
while (scan.hasNextLine()) { sb.append(scan.nextLine()); sb.append(System.lineSeparator());}

人到中年有点甜
TA贡献1895条经验 获得超7个赞
这个:
while (scan.hasNext()) { sb.append(scan.next());}
是删除空格... next()
将从扫描仪返回下一个完整的标记,这不包括空格。您需要附加空格或更改您阅读文件的方式......

心有法竹
TA贡献1866条经验 获得超5个赞
您可以逐行读取文件,并在每行后面附加一个行分隔符,而不是扫描每个标记:
while (scan.hasNextLine()) { sb.append(scan.nextLine()); sb.append(System.lineSeparator());}
添加回答
举报
0/150
提交
取消