好的,所以我无法弄清楚如何将txt文件中的数字分配给String变量。我的实现ALMOST做了我想要的但是不太正确。使用我的代码,它在txt文件中占用一行,并在每次循环重新启动时重新分配。在输出时的含义,显示的唯一内容是文件的最后一行。我希望它包含整个txt文件。
P.S。)我实际上不需要打印输出变量,我只是用它来验证它是否包含我需要的所有东西。我正在开展一个更大的项目,如果我能够开展这项工作,我应该能够相应地调整我的实际项目。此外,如果给出的任何解决方案/帮助不会让我使用数组,我将非常感激。如果我必须将变量转换为数组,那么我将不得不重新编码其他所有内容以适应它。
public class test {
public static String num;
public static void main(String[] args) {
BufferedReader reader = null;
try {
File file = new File("test3_14.txt");
reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
//System.out.println(line);
num = line;
//System.out.println(num);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.print(num);
}
}
答案 0 :(得分:0)
我假设您想将所有数字连接成一个字符串
创建StringBuilder对象
$ go test
--- FAIL: TestTimeFormatting (0.00s)
main_test.go:14: Invalid timestamp formating, expected 2017-01-02T03:04:05.600+00:00, got 2017-01-02T03:04:05.6+00:00
FAIL
exit status 1
FAIL _/home/sasa/Bugs/go-formatter 0.001s
为其添加行:
StringBuilder stringBuilder = new StringBuilder();
循环结束后,构建String并将其保存在varible
中stringBuilder.append(line);
stringBuilder.append(","); // if you want to separate the numbers
答案 1 :(得分:0)
您是否尝试将num = line;
更改为num += line;
?
答案 2 :(得分:0)
从代码中可以看出,您没有将新行附加到文本中。你每次都要压倒它。您可以按照以下任何一种方法进行操作 -
而不是使用(=),请使用(+ =)。更好的方法是使用Stringbuilder并稍后转换为字符串。
您可以使用FileUtils.readFileToString(File,Charset)。此方法将文件的内容读取为字符串。
如果您使用的是Java 8,则可以使用Files.lines()方法获取Stream。
答案 3 :(得分:0)
从您的代码中可以看出,您没有将该行附加到文本中。你每次都要压倒它。您可以按照以下任何一种方法进行操作 -
而不是使用(=),请使用(+ =)。更好的方法是使用Stringbuilder,然后将其转换为字符串。
您可以使用FileUtils.readFileToString(File,Charset)。此方法允许您将整个文件读取为字符串。
如果您使用的是Java 8,还可以使用Files.lines()来获取Stream。