Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算从txt文件获得的值?_Java_Arrays - Fatal编程技术网

Java 如何计算从txt文件获得的值?

Java 如何计算从txt文件获得的值?,java,arrays,Java,Arrays,因此,我试图读取results.txt文件中的值,并根据CGPA格式进行计算,但我尝试的方法似乎不起作用。我想知道是否有人可以帮我这是我的客户机服务器分配。计算部分位于View()方法下。PS抱歉,如果我的代码太难阅读,而且我还不熟悉使用java,这是我第一次在这里发布 import java.net.*; import java.io.*; import java.lang.*; public class MultiClientHandler1 extends Thread { priv

因此,我试图读取results.txt文件中的值,并根据CGPA格式进行计算,但我尝试的方法似乎不起作用。我想知道是否有人可以帮我这是我的客户机服务器分配。计算部分位于View()方法下。PS抱歉,如果我的代码太难阅读,而且我还不熟悉使用java,这是我第一次在这里发布

import java.net.*; 
import java.io.*;
import java.lang.*;
public class MultiClientHandler1 extends Thread {
  private Socket client;
  private BufferedReader in, in2,in3;
  private PrintWriter out, out2;
  private String received, data,result;
  private String array[], array2[], array3[],array4[];
  private int found=0;

  public MultiClientHandler1(Socket socket) {
    client = socket;
    try {
      in = new BufferedReader(new InputStreamReader(client.getInputStream()));
      out = new PrintWriter(client.getOutputStream(), true);
      out2 = new PrintWriter(new FileWriter("students.txt", true));
    } catch(IOException e) {
      e.printStackTrace();
    }
  }

  public void Register() {
    String reply="";
    array = received.split(":");

    if(array[1].length() != 7)
      reply = "Err1";
    else if(array[2].length() < 5)
      reply = "Err2";
    else if(array[3].length() < 5)
      reply = "Err3";
    else {
      reply= "+OK";
      out2.println(array[1]+":"+array[2]+":"+array[3]);
      out2.close();
    }
    out.println(reply);
  }

  public void login() throws IOException {
    in2 = new  BufferedReader(new FileReader("students.txt"));
    while((data = in2.readLine()) != null) {
      array3=data.split(":");
      if((array2[1].equals(array3[0])) && (array2[2].equals(array3[1]))) {
        out.println("Login successfully");
        found=1;
        break;
      }
    }
    if(found==0)
      out.println("Login Error");
  }

  public void View() throws IOException {
    String grade = "", cgpa = "";
    int IntValue = 0, IntCH = 0, IntCGPA = 0, IntArray = 0;
    in3 = new BufferedReader(new FileReader("results.txt"));
    while((result = in3.readLine()) != null) {
      array4=result.split(":");
      if((array2[1].equals(array4[0])) && (array2[2].equals(array4[1]))) {
        grade += array4[2] + " " + array4[3] + " " + array4[4] + "...........";
        found = 1;
        if(array4[3] == "A") {
          IntArray = Integer.parseInt(array4[3]);
          IntValue = IntArray * 4;
        } else if(array4[3] == "B") {
          IntArray = Integer.parseInt(array4[3]);
          IntValue = IntArray * 3;
        }
        IntCH += IntArray;
        IntCGPA = IntValue/IntCH;
        out.println(IntCGPA);
      }
      if(found==0)
        out.println("No Records");
    }
    out.println(grade);
  }

  public void run() {
    try {
      do {
        found=0;
        received = in.readLine();
        array2=received.split(":");
        if (received.equals("QUIT")) break;

        switch(received.charAt(0)) {
          case 'R':
            Register();
            break;
          case 'L':
            login();
            break;
          case 'V':
            View();
            break;
        }
      } while (!received.equals("QUIT"));
    } catch(IOException e) {
      e.printStackTrace();
    } finally {
      try {
        if(client != null) {
          System.out.println("Closing down connection...");
          client.close();
        }
      } catch(IOException e) {
        e.printStackTrace();
      }
    }
  }
}
    these are the content in the results.txt file
    0118210:1801:XDCS1094:A:4
    0118210:1801:XDCS2034:B+:4
    0118210:1801:XDCS1043:C:3
    0118024:1801:XDCS1094:B:4
    0118024:1801:XDCS2094:A:4
import java.net.*;
导入java.io.*;
导入java.lang.*;
公共类MultiClientHandler1扩展线程{
专用套接字客户端;
专用缓冲区读取器in、in2、in3;
私人打印输出,输出2;
接收到私有字符串、数据、结果;
私有字符串数组[],array2[],array3[],array4[];
找到的私有int=0;
公共多客户机DLER1(套接字){
客户端=套接字;
试一试{
in=new BufferedReader(新的InputStreamReader(client.getInputStream());
out=新的PrintWriter(client.getOutputStream(),true);
out2=新的PrintWriter(新的FileWriter(“students.txt”,true));
}捕获(IOE异常){
e、 printStackTrace();
}
}
公开作废登记册(){
字符串reply=“”;
数组=已接收。拆分(“:”);
if(数组[1]。长度()!=7)
答复=“Err1”;
else if(数组[2].length()<5)
答复=“Err2”;
else if(数组[3].length()<5)
答复=“Err3”;
否则{
答复=“确定”;
out2.println(数组[1]+“:”+数组[2]+“:”+数组[3]);
out2.close();
}
out.println(回复);
}
public void login()引发IOException{
in2=新的BufferedReader(新的文件阅读器(“students.txt”);
而((data=in2.readLine())!=null){
array3=data.split(“:”);
如果((array2[1].equals(array3[0])和&(array2[2].equals(array3[1])){
out.println(“登录成功”);
发现=1;
打破
}
}
如果(找到==0)
out.println(“登录错误”);
}
public void View()引发IOException{
字符串级别=”,cgpa=”;
int IntValue=0,IntCH=0,IntCGPA=0,IntArray=0;
in3=新的BufferedReader(新的文件阅读器(“results.txt”);
而((result=in3.readLine())!=null){
array4=结果。拆分(“:”);
如果((array2[1].equals(array4[0])和&(array2[2].equals(array4[1])){
等级+=阵列4[2]+“”+array4[3]+“”+array4[4]+”;
发现=1;
如果(数组4[3]=“A”){
IntArray=Integer.parseInt(array4[3]);
IntValue=IntArray*4;
}否则如果(数组4[3]=“B”){
IntArray=Integer.parseInt(array4[3]);
IntValue=IntArray*3;
}
IntCH+=IntArray;
IntCGPA=IntValue/IntCH;
out.println(IntCGPA);
}
如果(找到==0)
out.println(“无记录”);
}
out.println(年级);
}
公开募捐{
试一试{
做{
发现=0;
received=in.readLine();
array2=已接收。拆分(“:”);
如果(接收等于(“退出”))中断;
开关(接收到字符(0)){
案例“R”:
寄存器();
打破
案例“L”:
登录();
打破
案例“V”:
视图();
打破
}
}而(!received.equals(“QUIT”));
}捕获(IOE异常){
e、 printStackTrace();
}最后{
试一试{
如果(客户端!=null){
System.out.println(“关闭连接…”);
client.close();
}
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
这些是results.txt文件中的内容
0118210:1801:XDCS1094:A:4
0118210:1801:XDCS2034:B+:4
0118210:1801:XDCS1043:C:3
0118024:1801:XDCS1094:B:4
0118024:1801:XDCS2094:A:4

您的代码以何种方式不起作用?寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:当我尝试运行程序并键入V:018210:1801时,它应该显示来自results.txt文件的结果,并根据结果计算CGPA,但它显示为null