Java .readline被划破并要求添加@SuppressWarnings“;弃用;

Java .readline被划破并要求添加@SuppressWarnings“;弃用;,java,Java,我正在尝试编写一个代码来管理写入和读取的文件。Eclipse通过.readLine()方法执行。我很难理解为什么以及如何修复它。这一定是某种心理障碍,因为我已经阅读了Oracles网站上的教程文档,但没有帮助。有没有人能把这句话用语言表达出来,让这个菜鸟能够理解 import java.io.*; public class DataBase { public static String getExtension(File f) { String ext = null; Str

我正在尝试编写一个代码来管理写入和读取的文件。Eclipse通过.readLine()方法执行。我很难理解为什么以及如何修复它。这一定是某种心理障碍,因为我已经阅读了Oracles网站上的教程文档,但没有帮助。有没有人能把这句话用语言表达出来,让这个菜鸟能够理解

import java.io.*;

public class DataBase {

public static String getExtension(File f) {
    String ext = null;
    String s = f.getName();
    int i = s.lastIndexOf('.');

    if (i > 0 && i < s.length() - 1) {
        ext = s.substring(i + 1).toLowerCase();
    }
    return ext;
}

public static String readFile(String fileName) {
    String strData = "";
    if (!new java.io.File(fileName).exists()) {
        return strData;
    }

    File file = new File(fileName);
    FileInputStream fis = null;
    BufferedInputStream bis = null;
    DataInputStream dis = null;
    StringBuffer buff = new StringBuffer();
    try {
        fis = new FileInputStream(file);


        bis = new BufferedInputStream(fis);
        dis = new DataInputStream(bis);
        String line = "";


        while (dis.available() != 0) {


            line = dis.readLine();

            if (line.length() > 0) {
                if (line.contains("<br/>")) {

                    line = line.replaceAll("<br/>", " ");
                    String tempLine = "";
                    while((tempLine.trim().length()<1) && dis.available()!=0){
                        tempLine = dis.readLine();
                    }
                    line = line + tempLine;
                }
                line = line.replaceAll("\"", "");

                buff.append(line + "\n");
            }
        }


        fis.close();
        bis.close();
        dis.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return buff.toString();

}

public static boolean writeToFile(String fileName, String data, boolean append) {
    boolean isWrite = false;
    int dirIndex = fileName.lastIndexOf(getPathSeparator());
    if (dirIndex != -1) {
        String dir = fileName.substring(0, dirIndex) + getPathSeparator();
        java.io.File fDir = new java.io.File(dir);
        if (!fDir.exists()) {
            if (!fDir.mkdirs()) {
                return false;
            }
        }
    }
    try {
        java.io.FileOutputStream fout = new java.io.FileOutputStream(fileName, append);
        java.nio.channels.FileChannel fChannelWriter = fout.getChannel();
        byte[] bytesToWrite = data.getBytes();
        java.nio.ByteBuffer bBuffW = java.nio.ByteBuffer.wrap(bytesToWrite);
        fChannelWriter.write(bBuffW);
        fChannelWriter.close();
        fout.close();
        isWrite = true;
    } catch (java.io.IOException ex) {
        isWrite = false;
    }
    return isWrite;
}

public static String getPathSeparator() {
    return java.io.File.separator;
}
}
import java.io.*;
公共类数据库{
公共静态字符串getExtension(文件f){
字符串ext=null;
字符串s=f.getName();
int i=s.lastIndexOf('.');
如果(i>0&&i0){
if(行包含(“
”){ line=line.replaceAll(“
,”); 字符串tempLine=“”;
while((templane.trim().length()已弃用是一个术语,意思是一个项仍然存在向后兼容性,但它有问题,您不应该将其用于新代码。如果您使用标记为
@Deprecated
的元素,Eclipse将立即通知您


解释为什么不推荐使用它(字符集问题)以及替代方法(使用
BufferedReader
而不是
DataInputStream
)。当您遇到不推荐的内容时,请务必查看文档;开发人员通常会解释原因。

不推荐的是一个术语,意思是某个项目仍然存在向后兼容性,但它存在问题,您不应将其用于新代码。如果您使用标记为
的元素,Eclipse将立即通知您@已弃用


解释为什么不推荐使用它(字符集问题)以及替代方法(使用
BufferedReader
而不是
DataInputStream
)。遇到不推荐使用的方法时,请始终检查文档;开发人员通常会解释原因。

之所以会这样做,是因为开发人员不希望您使用它,可能是因为它是一种未维护的方法,有更好的替代方法。该方法的文档清楚地解释了不推荐使用的原因以及您应该使用的方法:-您是我们一直在看错误的文档。老实说,你根本没有理由使用
DataInputStream
available()
-通常在执行I/O时,你会一直读到读调用失败(例如
readLine()
返回
null
)而不是手动检查EOF。撇开主题不谈:您的
.Close()
调用应该在
finally
块中,特别是如果您在
try
块中使用调用,除非必须,否则不要使用StringBuffer,请尝试StringBuilder。它被破解了,因为开发人员不希望您使用它,可能是因为它是一种未维护的方法,有更好的替代方法在方法中,请清楚地解释为什么不推荐使用它,以及您应该使用什么:-您一定查看了错误的文档。老实说,您根本没有理由使用
DataInputStream
available()
-通常在执行I/O操作时,您会一直读到读调用失败(例如
readLine())
返回
null
),而不是手动检查EOF。撇开主题不谈:您的
.Close()
调用应该在
finally
块中,特别是如果您在
try
块中使用它们,除非必须,否则不要使用StringBuffer,请尝试StringBuilder。