当前位置: 首页 > 知识库问答 >
问题:

如何读取. java文件中的特定行并打印出来…?

寇坚成
2023-03-14

我正在创建一个项目,其中我需要从. java文件中的关键字开始读取特定行。

我将不得不阅读. java文件以获取:

Intent myIntent = new Intent(StudentMap.this, StudentPref.class);
StudentMap.this.startActivity(myIntent);

我将如何读取代码中的这两行代码。我应该为此设置regex吗?

我正在使用:

public void onClick(View v) {

    TextView responseText = (TextView) findViewById(R.id.responseText);
    String myData = "";
String test = "Intent ";
   // String name="";
    switch (v.getId()) {
        case R.id.getExternalStorage:
            try {
                FileInputStream fis = new FileInputStream(myExternalFile);
                DataInputStream in = new DataInputStream(fis);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String strLine;

                while ((strLine = br.readLine()) != null){
                    myData = myData + strLine;



                    if (strLine.equals(test)) {

                        tv1.setText(tv1.getText() + strLine + "\n");
                    }
                    else{
                        tv1.setText(tv1.getText() + "nakaam" + "\n");

                    }

                }
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

            responseText.setText("MySampleFile.java data retrieved from external Storage...");

            break;

    }

    tv1.setText(tv1.getText() + myData + "\n"+"\n"+"\n"+"end");

    //tv1.setText(tv1.getText() + strLine + "\n");


}

据我所知,Intent关键字在每个文件中都是静态的,因此我可以获得像“Intent”这样的行的开头,但如何仅从大文件中读取这一行和下一行…?

共有1个答案

慕阳伯
2023-03-14

如果您想在Keyword Intent处启动String,然后读取Number of Lines,您可以这样做:

try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    int remainingLines = 0;
    String stringYouAreLookingFor = "";
    for(String line; (line = br.readLine()) != null; ) {
        if (line.startsWith("Intent")) {
            remainingLines = <Number of Lines you want to read after keyword>;
            stringYouAreLookingFor += line
        } else if (remainingLines > 0) {
            remainingLines--;
            stringYouAreLookingFor += line
        }    
    }
}

我想这应该可以让您了解如何搜索您要查找的字符串

 类似资料:
  • 我是Java编程的新手,我的任务是解析CSV文件并通过比较列打印出CSV文件的正确行,例如打印的行需要有唯一的第1和第2列,第3列必须包含“no”,第4列的值大于或等于12。 共5列。 此外,我不允许使用任何为您解析CSV的库。 我不确定使用什么数据结构来比较列。 我非常感谢任何建议!

  • 问题内容: 在Java中,是否有任何方法可以从文件中读取特定行?例如,读取第32行或任何其他行号。 问题答案: 除非你以前对文件中的行有一定的了解,否则没有阅读前31行就无法直接访问第32行。 所有语言和所有现代文件系统都是如此。 如此有效地,你只需阅读第32行,直到找到第32行为止。

  • 问题内容: 有什么方法可以从文本文件中读取特定行?在API或Apache Commons中。就像是 : 我同意实现起来很简单,但是特别是当文件很大时,效率不是很高。 问题答案: 可以,但是仍然存在效率问题。 或者,您可以使用: 由于有缓冲,这将稍微更有效。 看一下并尝试跳过整行(使用正则表达式)。我无法确定它是否会更有效- 对其进行基准测试。 PS 代表 效率, 我的意思是 记忆效率

  • 问题内容: 我不是在谈论特定的行号,因为我正在读取具有相同格式但长度不同的多个文件。 说我有这个文本文件: 我希望你知道我的意思。我正在考虑遍历文件,然后使用正则表达式搜索以找到“开始”和“结束”的行号,然后使用线缓存从开始行读取到结束行。但是如何获得行号?我可以使用什么功能? 问题答案: 如果您只想要和之间的文本块,则可以执行以下操作: 实际上,您不需要操纵行号即可读取开始和结束标记之间的数据。

  • 所以我正在写一个代码来获取scanf一个文本文件并返回一个格式化的文本消息日志。我一直在想,当文件扫描行“332982000 20555552002 205551001 7 Webb先生,我能问你一个问题吗?”时,如何在某一点扫描文件中的字符串,并打印E.X点以外的所有字符串我将前4个数字扫描为整数,并将其余写入的文本扫描到从“Mr.Webb”开始的字符数组中。 我尝试使用一个for循环与fsca

  • 问题内容: 嘿,我正在尝试打开文件,仅从偏移量读取一定长度!我阅读了以下主题: 如何使用Java中的文件中的特定行号读取特定行? 在那儿,它说在不读取之前就不可能读取某行,但是我想知道字节! 是否可以从已知偏移量读取某些字节? 问题答案: RandomAccessFile提供一个功能: