读取java文件时请清空空间
因此,当我读取此文件时,第一行应该是一个整数(另一个变量将容纳该整数),否则它将引发异常。 文件的其余部分应该是数据(所有数据的另一个变量),但由于某种原因,字符串开头包含一个空格,当我拆分它时,我必须在数组中使用+1,因为这个空格 使用String.Trim()删除字符串开头和结尾的空白。读取java文件时请清空空间,java,file,Java,File,因此,当我读取此文件时,第一行应该是一个整数(另一个变量将容纳该整数),否则它将引发异常。 文件的其余部分应该是数据(所有数据的另一个变量),但由于某种原因,字符串开头包含一个空格,当我拆分它时,我必须在数组中使用+1,因为这个空格 使用String.Trim()删除字符串开头和结尾的空白。 链接到方法:问题是它读取的是第一个int,然后是第一行的其余部分 基本上: 15\n此处有一行\n此处有另一行 其中\n是换行符 它读取15,然后读取到\n,即“”(省略换行符)。其余的内容如你所料 尝试使
链接到方法:问题是它读取的是第一个int,然后是第一行的其余部分 基本上: 15\n此处有一行\n此处有另一行 其中\n是换行符 它读取15,然后读取到\n,即“”(省略换行符)。其余的内容如你所料 尝试使用:
private Scanner inputFile;
private String corpusFileString = "";
try
{
File file = new File(sourceFile.getText());
inputFile = new Scanner(file);
JOptionPane.showMessageDialog(null, "The file was found.");
if (text != null)
{
translate.setEnabled(true);
}
}
catch (FileNotFoundException ex)
{
JOptionPane.showMessageDialog(null, "The file was not found.");
}
try
{
numberWords = inputFile.nextInt();
}
catch (InputMismatchException ex)
{
JOptionPane.showMessageDialog(null, "The first line on the file must be an integer");
}
while (inputFile.hasNext())
{
corpusFileString = corpusFileString + inputFile.nextLine() + " ";
}
而不是
numberWords = Integer.parseInt(inputFile.nextLine());
我对java没有把握。在尝试使用
nextInt()
阅读之前,可能需要调用hasNext()
。这就是.NET阅读器和枚举器的工作方式。在c#中,我会写以下内容
numberWords = inputFile.nextInt();
你可以试试看
while (reader.MoveNext()) {
string s = reader.Current;
}
这看起来更像Java而不是C#。这似乎不是相关的代码部分。向我们展示
扫描器类的代码。@OlivierJacot Descombes扫描器是一个内置Java类。问题是Java,而不是C。我认为问题与文件处理有关。既然他已经更改了标签;-)
if (inputFile.hasNext()) {
numberWords = inputFile.nextInt();
}