Java 字符串和文本文件

Java 字符串和文本文件,java,Java,我正在准备期末考试,我正在努力做到以下几点: 打开文件nFile,并在文件名file中打印与行号start到行号finish对应的字符串 当行号开始或结束不存在时,必须处理错误消息,应打印字符串“line not found”,如果发生IOException,该方法应打印“IO error” 我正在使用具有以下内容的文本文件: 11 1c20 203 G2 如果输入2,4,“1c20 203 G2”。将打印 我已经做了很多研究,当输入行号时,我一直在打印字符串 import java.

我正在准备期末考试,我正在努力做到以下几点:

打开文件nFile,并在文件名file中打印与行号start到行号finish对应的字符串

当行号开始或结束不存在时,必须处理错误消息,应打印字符串“line not found”,如果发生IOException,该方法应打印“IO error”

我正在使用具有以下内容的文本文件:

11 
1c20 
203 
G2 
如果输入2,4,“1c20 203 G2”。将打印

我已经做了很多研究,当输入行号时,我一直在打印字符串

import java.io.*;

public class files { 
public void dR(String nFile, int start, int finish)     
{
        try{                
               FileInputStream fstream = new FileInputStream("C://rest//dat.txt");

               // Get the object of DataInputStream
               DataInputStream in = new DataInputStream(fstream);
               BufferedReader br = new BufferedReader(new InputStreamReader(in));

               nameFile=null;
               start=0;
               finish=0;
                // if start  is greater or = to 1 and finish less than 4
                while((nFile=br.readLine())!=null && start>= 1 && finish <= 4)
                {
                     for(int i=0; i<=start; i++)
                     {
                         System.out.println(nFile);
                         br.close();
                     }
                     System.out.println("that doesnt exsist"); 
                  }            
      } 
            catch(IOException e)
            {
                 System.out.println("there is an IO error");                
            }
        }
    }
import java.io.*;
公共类文件{
公共void dR(字符串nFile、int start、int finish)
{
试试{
FileInputStream fstream=新的FileInputStream(“C://rest//dat.txt”);
//获取DataInputStream的对象
DataInputStream in=新的DataInputStream(fstream);
BufferedReader br=新的BufferedReader(新的InputStreamReader(in));
nameFile=null;
开始=0;
完成=0;
//如果开始大于或=1,结束小于4

虽然((nFile=br.readLine())!=null&&start>=1&&finish首先,您没有使用
nFile
参数(提示:这是文件名。猜猜它应该放在代码中的什么位置…),在这两行中:

start=0;
finish=0;
您刚刚丢失了提供给您的参数

相反,我将创建一个新变量

int index = 0;
每增加一行,如果在开始和结束之间,则打印该行


您仍然需要“读取”在
start
之前的行,才能计算您在哪一行。

首先,您没有使用
nFile
参数(提示:这是文件名。猜猜它应该放在代码中的什么位置…),在这两行中:

start=0;
finish=0;
您刚刚丢失了提供给您的参数

相反,我将创建一个新变量

int index = 0;
每增加一行,如果在开始和结束之间,则打印该行

您仍然需要“读取”在
开始之前的行,以便能够计算您在哪一行。

类似的内容

for (int i=1 ; (nFile=br.readLine())!=null; i++) 
{
 if (start>= i && finish <= i)
 {
  System.out.println(nFile);
 }
}
br.close();
for(inti=1;(nFile=br.readLine())!=null;i++)
{
如果(开始>=i&&finish像这样的事情

for (int i=1 ; (nFile=br.readLine())!=null; i++) 
{
 if (start>= i && finish <= i)
 {
  System.out.println(nFile);
 }
}
br.close();
for(inti=1;(nFile=br.readLine())!=null;i++)
{

如果(开始>=i&&finish您将丢弃从参数中获得的所有输入

int linenb=1;//this will hold the current line number
while((nFile=br.readLine())!=null){
    if(linenb>=start&&linenb<=finish)  
        System.out.println(nfile); 
    linenb++;
}
if(linenb<=finish)
    System.out.println("Line not found"); 
int linenb=1;//这将保存当前行号
而((nFile=br.readLine())!=null){

如果(linenb>=start&&linenb您正在丢弃从参数获得的所有输入

int linenb=1;//this will hold the current line number
while((nFile=br.readLine())!=null){
    if(linenb>=start&&linenb<=finish)  
        System.out.println(nfile); 
    linenb++;
}
if(linenb<=finish)
    System.out.println("Line not found"); 
int linenb=1;//这将保存当前行号
而((nFile=br.readLine())!=null){
如果(linenb>=start&&linenb
导入java.io.*;
导入java.util.ArrayList;
导入java.util.Scanner;
公共类打印字符串
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
int start=in.nextInt();
int stop=in.nextInt();
ArrayList字符串=新的ArrayList();
字符串行=null;
BufferedReader buff=null;
尝试
{
buff=新的BufferedReader(新的InputStreamReader(新的文件InputStream(“data.txt”));
而((line=buff.readLine())!=null)
{
strings.add(行);
}
}
捕获(例外e)
{
System.err.println(“IO错误”);
系统出口(-1);
}
最后
{
尝试
{
buff.close();
}
捕获(IOE2){}
}
如果(开始<1 | |开始>strings.size()| |停止<1 | |停止>strings.size()| |开始>停止)
{
System.err.println(“未找到行”);
系统出口(-2);
}
对于(int i=start-1;i
导入java.io.*;
导入java.util.ArrayList;
导入java.util.Scanner;
公共类打印字符串
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
int start=in.nextInt();
int stop=in.nextInt();
ArrayList字符串=新的ArrayList();
字符串行=null;
BufferedReader buff=null;
尝试
{
buff=新的BufferedReader(新的InputStreamReader(新的文件InputStream(“data.txt”));
而((line=buff.readLine())!=null)
{
strings.add(行);
}
}
捕获(例外e)
{
System.err.println(“IO错误”);
系统出口(-1);
}
最后
{
尝试
{
buff.close();
}
捕获(IOE2){}
}
如果(开始<1 | |开始>strings.size()| |停止<1 | |停止>strings.size()| |开始>停止)
{
System.err.println(“未找到行”);
系统出口(-2);
}
对于(int i=start-1;i
what的期末考试?你不坚持命名约定?看起来更像是初学者。没有声明nameFile-你没有编译器吗?Start和finish作为参数传递,但你用0覆盖了它们-为什么?dR是什么意思?什么的期末考试?你不坚持命名约定?看起来更像是初学者。nameFile没有声明-你没有编译器吗?Start和finish作为参数传递,但是你用0覆盖它们-为什么?dR是什么意思?