Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何从文件中获取最后一个数字?_Java - Fatal编程技术网

在Java中,如何从文件中获取最后一个数字?

在Java中,如何从文件中获取最后一个数字?,java,Java,我有下面的代码,我在计算文件中的行数。我还想检索最后一行(整数): 试试看{ 字节[]c=新字节[1024]; 整数计数=0; int readChars=0; 布尔空=真; 而((readChars=is.read(c))!=-1){ for(int i=0;ijavac ParentClass2.Java ParentClass2.Java:90:byte 不能取消引用 lastLine=c[i].intValue() 如何将字节转换为int?错误被忽略的原因是,您尝试转换为整数的最后一个字

我有下面的代码,我在计算文件中的行数。我还想检索最后一行(整数):

试试看{
字节[]c=新字节[1024];
整数计数=0;
int readChars=0;
布尔空=真;
而((readChars=is.read(c))!=-1){
for(int i=0;i
我添加了此行-
lastLine=c[I].intValue();
但这就产生了错误:

C:\Java\u Scratch>javac ParentClass2.Java ParentClass2.Java:90:byte 不能取消引用 lastLine=c[i].intValue()


如何将字节转换为int?

错误被忽略的原因是,您尝试转换为整数的最后一个字节不是所需文件中的最后一个整数,而是文件末尾的“\n”

要获取最后一行,您可以按原样在文件中循环,但要创建一个变量来跟踪最后一行。下面是一个源于以下内容的示例:

注意:本例中的“in”是一个,但您也可以使用任何其他文件读取器


要从最后一行提取数字,请使用以下命令:

int lastLineValue = Integer.parseInt(lastLine);
注意:Integer.parseInt(x)接受任何字符串作为参数并返回包含的整数


您还询问了如何将字节转换为int。有两种方法:

  • 首选:只需将int设置为字节,如下所示:

    intx=c[i];

  • 这是因为这不是一个向上投影,就像
    double d=5;
    如何完美地工作一样

  • 或者,如果出于任何原因需要任何其他字节方法,则可以使用当前基元字节创建字节对象,如下所示:

    字节b=c[i];
    int x=b.intValue();


  • byte
    是一个原语,它没有可以在上面执行的“方法”。可以试试
    (int)c[i];
    instead@MadProgrammer-好的,明白了-谢谢!@MadProgrammer-奇怪的事情-这确实编译了,但即使最后一行是
    27
    它告诉我它是
    10
    ,这在二进制中并不是真正的意义。你必须以某种方式解释这些字节,以便在整数上下文中理解它们。
    if(c[i]=='\n'){..lastLine=(int)c[i];}
    ,是什么让你认为
    lastLine
    将是
    \n
    int
    表示之外的东西?
    String currentLine = "", lastLine = "";
    
    while ((currentLine = in.readLine()) != null) 
    {
        lastLine = currentLine;
        // Do whatever you need to do what the bytes in here
        // You could use lastLine.getBytes() to get the bytes in the string if you need it
    }
    
    int lastLineValue = Integer.parseInt(lastLine);