我有一个类文件,该类文件的方法带有字符串参数并输出到文件:
public static void logger(String content) {
FileOutputStream fop = null;
File file;
//content = "This is the text content";
try {
file = new File("logs.txt");
fop = new FileOutputStream(file);
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
// get the content in bytes
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fop != null) {
fop.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
我正在尝试使用此方法将跟踪日志记录添加到许多文件,并且它不仅涉及String数据类型,而且还涉及doubles等...我不确定如何将doubles / ints包含到此方法中方法和输出。
我对Java还是很陌生,所以如果这实际上是一件微不足道的任务,我深表歉意!
答案 0 :(得分:0)
声明采用Object
作为参数的第二种方法。
public static void logger(Object content) {
logger(content.toString());
}
此方法将对象的字符串表示形式的记录委托给您的较早方法,无论其类型如何。
现在,您可以在字符串(例如logger()
和任何其他类型(例如logger("The answer")
)上调用logger(42)
。
请注意,装箱(将诸如int
之类的原始类型包装到诸如Integer
之类的对象中)会自动发生。
如果您打算一次打印多个对象,则必须提供一种采用varargs数组的方法。
public static void logger(Object... objects) {
String msg = Stream.of(objects).map(Object::toString).collect(Collectors.joining());
System.out.println(msg);
}
呼叫logger("The answer is ", 42)
将显示“答案是42”。
答案 1 :(得分:0)
通过使用相应的包装器类,您可以得到String
的双精度,长整型等表示形式。
示例:
double doubVar = 12.643;
Logger.logger( Double.toString( doubVar ) );
或整数:
int i = 2;
Logger.logger( Integer.toString( i ) );