0

読み書きされるファイルを管理するコードを書こうとしています。Eclipse は .readLine() メソッドを介して攻撃します。その理由と修正方法を理解するのに苦労しています。オラクルのウェブサイトでチュートリアルのドキュメントを読んだことがありますが、それは役に立ちませんでした。この初心者が理解できる言葉にできる人はいますか?

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;
}
}
4

1 に答える 1

6

非推奨とは、項目が下位互換性のためにまだ存在するが、問題があり、新しいコードに使用しないことを意味する用語です。のマークが付いた要素を使用すると、Eclipse はすぐに通知します@Deprecated

の Javadoc は、DataInputStream.html#readLine非推奨の理由 (文字セットの問題) と代わりに何をすべきか (BufferedReader代わりに使用) を説明していDataInputStreamます。非推奨のものに出くわしたときは、常にドキュメントを確認してください。通常、開発者はその理由を説明します。

于 2013-10-14T22:44:03.823 に答える