import java.io.*;
import java.io.File.*;
import java.util.*;
import java.lang.Character.*;
public class consus
{
  public static void main(String [] args)
  {
    Scanner s = new Scanner(System.in);
    String str;
    str = s.next();
    File f = new File("D://Target.txt");
    char[] target=str.toCharArray();
    int target1 = target[0];
    int degree = 0;
    int arrange = 1;
    int i = 0;
    while (i != -1)
    {
      i = f.read();
      if (i != -1)
      {
        System.out.print(String.valueOf(Character.toChars(i)));
      }
      if (i == target1)
      {
        degree =degree +1;
      }
      if (arrange == 21)
      {
        System.out.println("");
        arrange = 1;
      }
    }
    System.out.println("");
    System.out.print("该字出现的次数为:"+degree);
  }
    f.close();
}
为什么这个程序在运行后报错说f.close();需要标识符?????????????????

解决方案 »

  1.   


    package com.test;
    import java.io.*;
    import java.util.*;
    public class consus
    {
    public static void main(String [] args)
    {
    try{
    Scanner s = new Scanner(System.in);
    String str;
    str = s.next();
    FileReader f = new FileReader(new File("D://Target.txt"));
    char[] target=str.toCharArray();
    int target1 = target[0];
    int degree = 0;
    int arrange = 1;
    int i = 0;
    while (i != -1)
    {
    i = f.read();
    if (i != -1)
    {
    System.out.print(String.valueOf(Character.toChars(i)));
    }
    if (i == target1)
    {
    degree =degree +1;
    }
    if (arrange == 21)
    {
    System.out.println("");
    arrange = 1;
    }
    }
    System.out.println("");
    System.out.print("该字出现的次数为:"+degree);
    f.close();
    }
    catch(Exception e){
    e.printStackTrace();
    }
    }}
      

  2.   

    没有创建流。package com.study.pratice03;import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Scanner;public class consus
    {
    public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    Scanner s = new Scanner(System.in);
    String str;
    str = s.next();
    FileInputStream f = null;
    try
    {
    f = new FileInputStream(new File("D://Target.txt"));
    }
    catch (FileNotFoundException e)
    {
    e.printStackTrace();
    }
    char[] target = str.toCharArray();
    int target1 = target[0];
    int degree = 0;
    int arrange = 1;
    int i = 0;
    while (i != -1)
    {
    try
    {
    i = f.read();
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    if (i != -1)
    {
    System.out.print(String.valueOf(Character.toChars(i)));
    }
    if (i == target1)
    {
    degree = degree + 1;
    }
    if (arrange == 21)
    {
    System.out.println("");
    arrange = 1;
    }
    }
    System.out.println("");
    System.out.print("该字出现的次数为:" + degree);
    try
    {
    f.close();
    }
    catch (IOException e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }}
      

  3.   

    File f = new File("D://Target.txt");
    你这只是new 了一个 文件。
    不知道你用的什么开发工具。i = f.read();这句话能通过吗?
    f没有read()和close()方法。只有像楼上那样把他包装成流
    FileReader f = new FileReader(new File("D://Target.txt"));
    以后才能进行读操作。和关闭流操作。。
      

  4.   

    就是该这句就行了吗?
    如果我把close去掉呢?
      

  5.   

    import java.io.*;
    //import java.io.File.*;
    import java.util.*;
    public class replace {

      public static void main (String [] args)
      {
       try{
        Scanner s = new Scanner(System.in);
        String str;
        str = s.next();
        //String [] word = str.split("");
        char word1 [] =str.toCharArray();
        int word_to_replace = 0;
        int word_to_be_replaced = 0;
        word_to_replace = word1[0];
        word_to_be_replaced = word1[2];
        FileReader f = new FileReader(new File ("D://Taget.txt"));
        int i = 0;
        int arrange = 0;
        int row = 1;
        while (i != -1)
        {
          i = f.read();
          arrange = arrange + 1;
          if (arrange == 21)
          {
            row = row + 1;
            System.out.println("");
          }
          if (i != word_to_be_replaced)
          {
            System.out.print(String.valueOf(Character.toChars(word_to_replace)));
          }
          else
          {
            System.out.print(String.valueOf(Character.toChars(i)));
          }
        }
        f.close();
       }
       catch(Exception e){
         e.printStackTrace();
       }
     }
    }
    为什么这个说是数组越界