java行号
Java是否提供某种方法:可以让用户代码在编译时确定源码行号等信息,本人暂时不知晓。不过从网上搜索得到的方法大致是:
Thread.currentThread().getStackTrace()[1].getFileName():获取当前文件名;
Thread.currentThread().getStackTrace()[1].getLineNumber():获取当前行号。
其中:Thread.currentThread().getStackTrace()返回的是一个数组形式的函数调用栈(栈顶在索引0处),其中第1个元素(索引为0)为最新调用的函数信息(getStackTrace()),第2个元素(索引为1)为当前函数(即调用getStackTrace()的函数)信息。
2. java记事本程序中显示行号的程序块
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
public class ShowSourceCode {
public static void main(String[] args) throws FileNotFoundException, IOException{
RandomAccessFile file = new RandomAccessFile("Add.java", "r");
String tmp;
while((tmp = file.readLine()) != null){
System.out.println(tmp);
}
file.seek(0);
int lineNum = 1;
while((tmp = file.readLine()) != null){
System.out.println(lineNum + ": " + tmp);
lineNum++;
}
}
}
3. Java获取代码执行的代码的所有行号
这个没什么意义吧,你想要知道具体运行到那些地方的话可以打断点一步一步运行啊
4. java读文件怎么获取当前行号
行号可以根据换行计算,每换一行,则行号增加,行尾都有一个
so:
读取文件所有内容,
判断 的个数,即可得到行数( 个数+1)
注:计算 个数可以用 来分割字符串,得到数组,数组的length即为行号
5. java eclipse里如何看行号
在eclipse的编辑区的左侧边框上点击鼠标右键,在弹出的选项里有一行“Show Line Number”,选择这个就行了。
如果是中文版更明显,就叫“显示行号”
6. 怎么用JAVA编写记事本 用来显示行号
文件名换成你自己即可
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
public class ShowSourceCode {
public static void main(String[] args) throws FileNotFoundException, IOException{
RandomAccessFile file = new RandomAccessFile("Add.java", "r");
String tmp;
while((tmp = file.readLine()) != null){
System.out.println(tmp);
}
file.seek(0);
int lineNum = 1;
while((tmp = file.readLine()) != null){
System.out.println(lineNum + ": " + tmp);
lineNum++;
}
}
}
7. java日志是怎么能输出行号的
在StackTraceElement类中有个getLineNumber()方法可以获取行号。
在Thread类中有个getStackTrace()方法可以获取StackTraceElement数组。下标从小到大依次为方法栈从顶到底。所以说通过 Thread.currentThread().getStackTrace()[1].getLineNumber()即可得到.
当然,通过构造一个Throwable(或其子类)对象也可以得到行号。
至于为什么有行号:字节码中有个LineNumberTable属性,将字节码偏移地址与java行对应起来,所以可以找到。
8. java 如何打印函数名称和行号
翻阅JDK,我们找到StackTraceElement这个类。这个类可以从Throwable取得,另外也可以从Thread类取得,通过这些我写如下的一个打印行号的测试程序:
查看源代码
打印帮助
01 public class LineNo {
02 public static int getLineNumber() {
03 return Thread.currentThread().getStackTrace()[2].getLineNumber();
04 }
05
06 public static String getFileName() {
07 return Thread.currentThread().getStackTrace()[2].getFileName();
08 }
09 public static void main(String args[]) {
10 System.out.println("["+getFileName()+":"+ getLineNumber()+"]"+"Hello World!");
11 }
12 }
留下一个问题,上面程序中的magic数字 2 代表什么含义呢?
0是thread.getCurrentThread()
1是getLineNumber()
2才是调用getLineNumber的类
9. 如何在Java中获取当前代码行行号和文件名
如果你用的是Eclipse或MyEclipse,在代码的左边(就是有加号或减号,用于缩放代码的位置)点右键将ShowLineNumbers打上对勾就可以看见行号了,文件名看包。
10. java为文件添加行号题
import java.io.*;
import java.util.*;
public class Test{
public static void main(String[] args){
List<String> list=new ArrayList<String>();
try {
File f=new File("d:/file/hello.txt ");
Scanner sc=new Scanner(f);
int k=0;
while(sc.hasNextLine()){
list.add(++k+" "+sc.nextLine());
}
FileWriter fw=new FileWriter(f);
for(int i=0;i<list.size();i++)
fw.write(list.get(i)+"\r\n");
fw.flush();
fw.close();
System.out.println("操作已经成功完成!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}