Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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
DataInputStream中的java[deprecation]readLine()已被弃用?_Java_Sql Server_Postgresql_Deprecated - Fatal编程技术网

DataInputStream中的java[deprecation]readLine()已被弃用?

DataInputStream中的java[deprecation]readLine()已被弃用?,java,sql-server,postgresql,deprecated,Java,Sql Server,Postgresql,Deprecated,我编写了一个java服务器套接字,它可以连接postgresql并返回值,但是当我编译javac-deprecation SQLServer.java时 为什么警告不起作用? 它没有任何错误。我如何修复它 SQLServer.java:66: warning: [deprecation] readLine() in DataInputStream has been deprecated query = in.readLine();

我编写了一个java服务器套接字,它可以连接postgresql并返回值,但是当我编译javac-deprecation SQLServer.java时 为什么警告不起作用? 它没有任何错误。我如何修复它

SQLServer.java:66: warning: [deprecation] readLine() in DataInputStream has been     deprecated
                            query = in.readLine();
                                      ^
1 warning
代码:

import java.io.*;
导入java.net。*;
导入java.util.*;
导入java.sql.*;
公共类SQLServer扩展线程{
公共静态最终int MYPORT=6700;
ServerSocket-listen\u-socket;
公共SQLServer(){
试一试{
listen\u socket=新服务器套接字(MYPORT);
}
catch(IOException e){System.err.println(e);}
这个。start();
}
公开募捐{
试一试{
while(true)
{
Socket client_Socket=侦听_Socket.accept();
SQLConnection c=新的SQLConnection(客户端\u套接字);
}
}
catch(IOException e){System.err.println(e);}
}
公共静态void main(字符串[]argv){
新建SQLServer();
}
}
类SQLConnection扩展线程{
受保护的套接字客户端;
受保护的数据输入流;
受保护的打印流输出;
受保护字符串查询;
公共SQLConnection(套接字客户端\u套接字){
客户机=客户机\u套接字;
试一试{
in=新的DataInputStream(client.getInputStream());
out=newprintstream(client.getOutputStream());
}
捕获(IOE异常){
系统错误println(e);
请尝试{client.close();}
捕获(IOE2){};
返回;
}
这个。start();
}
公开募捐{
试一试{
query=in.readLine();
System.out.println(“读取查询字符串”);
dou_sql();
//out.println(d.toString());
}
捕获(IOE){}
最后{
请尝试{client.close();}
捕获(IOE){};
}
}
公共void do_sql(){
Connection con;//数据库连接对象
语句stmt;//SQL语句对象
ResultSet rs;//SQL查询结果
结果元数据rsmd;
布尔更多;//“找到更多行”开关
String dsn=“jdbc:postgresql://localhost/postgres"; 
字符串user=“postgres”;
字符串密码=“123456”;
字符串记录;
int colcount,i;
试一试{
Class.forName(“org.postgresql.Driver”);
con=DriverManager.getConnection(dsn、用户、密码);
stmt=con.createStatement();
rs=stmt.executeQuery(查询);
more=rs.next();
如果(!更多){
out.println(“未找到行”);
返回;
}
rsmd=rs.getMetaData();
colcount=rsmd.getColumnCount();
System.out.println(colcount+“结果集中的列”);
而(更多){
//生成结果字符串
记录=”;
对于来自javadoc的(i=1;i):

不推荐使用。此方法无法正确地将字节转换为字符。从JDK 1.1开始,读取文本行的首选方法是通过
BufferedReader.readLine()
方法。使用DataInputStream类读取行的程序可以通过替换以下格式的代码转换为使用BufferedReader类:

    DataInputStream d = new DataInputStream(in);
与:


该方法被弃用,因为流是用来处理字节的,用来处理我们长期以来拥有的文本读写器,因为它们提供了使用编码的功能

如果您想读取文本,请尝试将流包装到读取器中

BufferedReader r = new BufferedReader(new InputStreamreader(your data stream, optional encoding parameter like "UTF-8"))

r.readLine();

Java API是这样说的:

不赞成。 此方法无法正确地将字节转换为字符。从JDK 1.1开始,读取文本行的首选方法是通过BufferedReader.readLine()方法。使用DataInputStream类读取行的程序可以通过替换以下格式的代码转换为使用BufferedReader类:

    DataInputStream d = new DataInputStream(in);
与:

BufferedReader r = new BufferedReader(new InputStreamreader(your data stream, optional encoding parameter like "UTF-8"))

r.readLine();
     DataInputStream d = new DataInputStream(in);
     BufferedReader d
          = new BufferedReader(new InputStreamReader(in));