
正文
java获取代码行号,java读取文件行号
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java代码中如何获文件名和行号等源码信息
Java是否提供某种方法:可以让用户代码在编译时确定源码行号等信息,本人暂时不知晓。不过从网上搜索得到的方法大致是:
Thread.currentThread().getStackTrace()[1].getFileName():获取当前文件名;
Thread.currentThread().getStackTrace()[1].getLineNumber():获取当前行号。
其中:Thread.currentThread().getStackTrace()返回的是一个数组形式的函数调用栈(栈顶在索引0处),其中第1个元素(索引为0)为最新调用的函数信息(getStackTrace()),第2个元素(索引为1)为当前函数(即调用getStackTrace()的函数)信息。
相关问答
Q1: java日志是怎么能输出行号的
在StackTraceElement类中有个getLineNumber()方法可以获取行号。
在Thread类中有个getStackTrace()方法可以获取StackTraceElement数组。下标从小到大依次为方法栈从顶到底。所以说通过 Thread.currentThread().getStackTrace()[1].getLineNumber()即可得到.
当然,通过构造一个Throwable(或其子类)对象也可以得到行号。
至于为什么有行号:字节码中有个LineNumberTable属性,将字节码偏移地址与java行对应起来,所以可以找到。
Q2: java读文件怎么获取当前行号
行号可以根据换行计算,每换一行,则行号增加,行尾都有一个\n
so:
读取文件所有内容,
判断\n的个数,即可得到行数(\n个数+1)
注:计算\n个数可以用\n来分割字符串,得到数组,数组的length即为行号
Q3: Java获取代码执行的代码的所有行号
这个没什么意义吧,你想要知道具体运行到那些地方的话可以打断点一步一步运行啊
Q4: 如何在Java中获取当前代码行行号和文件名
如果你用的是Eclipse或MyEclipse,在代码的左边(就是有加号或减号,用于缩放代码的位置)点右键将Show Line Numbers打上对勾就可以看见行号了,文件名看包。






