您好,这是我的代码,不知怎的,我仍然得到错误,我描述错误,任何帮助将不胜感激。我并不擅长导入这个,尤其是API本身
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class MyClass {
public static void main(String[] args) throws IOException {
File file = new File("Sinatra.txt");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
if (dis.available() != 0) {
// Get the line.
String s = dis.readLine();
// Put words to array.
String[] sParts = s.split(" ");
// Initialize word longest length.
int longestLength = 1;
for (String strx : sParts) { // Go through each sPart, the next one is called strx
// If the document has word longer than.
if (longestLength < strx.length())
// Set new value for longest length.
longestLength = strx.length();
}
// Because array index from "0".
int[] counts = new int[longestLength + 1];
for (String str : sParts) {
// Add one to the number of words that length has
counts[str.length()] += 1;
}
// We use this type of loop since we need the length.
for (int i = 1; i < counts.length; i++) {
System.out.println(i + " letter words: " + counts[i]);
}
}
}
}
// Result:
// 1 letter words: 0
// 2 letter words: 2
// 3 letter words: 0
// 4 letter words: 1
// 5 letter words: 0
// 6 letter words: 2
// 7 letter words: 2
// 8 letter words: 0
// 9 letter words: 3
您好这是我的代码,当我尝试编译它时,我得到了 错误说:
Note: MyClass.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
感谢您的帮助:)
答案 0 :(得分:1)
那些不是错误,它们是警告,你的代码已编译。
解释这些内容:
注意:MyClass.java使用或覆盖已弃用的API。
您正在调用func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return someEstimatedNumberWhichIsClose;
}
,自JDK 1.1以来已根据文档弃用:
<强>已过时。强>
此方法无法正确转换字节 字符。从JDK 1.1开始,读取文本行的首选方法是 通过BufferedReader.readLine()方法。使用的程序 DataInputStream类读取行可以转换为使用 BufferedReader类通过替换表单的代码:
DataInputStream#readLine
使用:
DataInputStream d = new DataInputStream(in);
至于第二行:
注意:使用-Xlint重新编译:弃用以获取详细信息。
它只是告诉您在编译时使用的选项,以获取有关您使用弃用内容的更多详细信息。
修改:
根据您的评论,这里的代码如下:
BufferedReader d = new BufferedReader(new InputStreamReader(in));
答案 1 :(得分:1)
从DataInputStream API文档:
的readLine()
已过时。
此方法无法将字节正确转换为字符。从JDK 1.1开始,读取文本行的首选方法是通过BufferedReader.readLine()方法。使用DataInputStream类读取行的程序可以通过替换表单的代码转换为使用BufferedReader类:
DataInputStream d = new DataInputStream(in);
使用:
BufferedReader d = new BufferedReader(new InputStreamReader(in));
您可以在代码中的String s = dis.readLine()
行中看到,您使用了弃用的方法。这意味着有更好的选择来做你正在做的事情(如上所述)。即使该方法已被弃用,但在某些情况下它可能会起作用。但是不能保证不再履行合同,因此最好使用类似但一致的BufferedReader.readLine()
方法。