static public void putContents(File aFile, String content, boolean append) {
// init
Writer writer = null;
// make sure file exists
if (!aFile.exists()) {
Util.createFile(aFile.getAbsolutePath());
}
// write content
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(aFile), "UTF-8"));
writer.write(content);
writer.close();
} catch (IOException e) {
logger.error("Error writing content to file: " + aFile);
} finally {
try {
// Close the writer regardless of what happens
writer.close();
} catch (Exception e) {
logger.error("Error while closing file: " + aFile.getAbsolutePath());
}
}
}
static public void createFile(String filename) {
// protection against accidental overwrite
if (new File(filename).exists()) {
logger.warn("File '" + filename + "' already exists. Nothing done.");
return;
}
// create file with directory structure
File targetFile = new File(filename);
File parent = targetFile.getParentFile();
if (!parent.exists() && !parent.mkdirs()) {
throw new IllegalStateException("Couldn't create dir: " + parent);
}
try {
targetFile.createNewFile();
} catch (IOException e){
logger.error("Error while creating empty file '" + filename + "': " + e.getMessage());
}
}
static public String getContents(File aFile) {
StringBuilder contents = new StringBuilder();
try {
// extract all text from this file
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(aFile), "UTF-8"));
try {
String line = null; //not declared within while loop
while ((line = reader.readLine()) != null) {
contents.append(line);
contents.append(System.getProperty("line.separator"));
}
} finally {
reader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
return contents.toString();
}
下面是如何生成异常的:
public static void main(String[] args) {
putContents(new File("D:/TEST.TXT"), "122", false);
String numberString = Util.getContents(new File("D:/TEST.TXT"));
logger.info("String: " + numberString);
logger.info("String converted to number: " + Integer.parseInt(numberString));
}
此处输出:
16:28:05,109 INFO [main] [Util] String: 122
Exception in thread "main" java.lang.NumberFormatException: For input string: "122"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at at.tuwien.mucke.util.Util.main(Util.java:154)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Process finished with exit code 1
方法getContents
在返回值中添加新行。这导致该方法返回122\r\n
contents.append(System.getProperty("line.separator"));
如果要删除新行,可以使用:
System.out.println("String converted to number: " + Integer.parseInt(numberString.replaceAll("\r\n", "")));
或者可以使用
System.out.println("String converted to number: " + Integer.parseInt(numberString.replaceAll("\\s", "")));
我正在逐行读取一个文件,并试图使它符合特定参数的行(在我的例子中,如果它以某个单词开头),我可以覆盖该行。 谢了!
我有关于在JTextField打字的问题。我的程序搜索通过几个csv文件和寻找指定的JTextField字符串。我有添加到readLine函数". toLowerCase"读取所有字符串作为小写。在写入JTextField时,是否可以将JTextField设置为自动将大写转换为小写? if(line.toLowerCase()。包含(searchedString))
问题内容: 我正在使用MySql DB,并且希望能够读取和写入unicode数据值。例如,法语/希腊语/希伯来语值。 我的客户端程序是C#(.NET Framework 3.5)。 如何配置数据库以允许unicode?以及如何使用C#从MySql读取/写入Unicode值? 更新日期:09年9月7日 好的,因此我的架构,表和列设置为’utf8’+排序规则’utf8_general_ci’。打开连接
问题内容: 我想将字符串的第一个字符转换为大写,并将其余字符转换为小写。我该怎么做? 例: 问题答案: 尝试以下尺寸: 基本上,它首先处理空字符串和一个字符字符串的特殊情况,否则正确处理一个两字符以上的字符串。而且,正如评论中指出的那样,功能不需要使用一个字符的特殊情况,但我仍然希望明确,特别是如果它导致更少的无用调用(例如子字符串以获取空字符串),小写字母它,然后附加它。
df.write.format(“jdbc”)。选项(
问题 你想读写二进制文件,比如图片,声音文件等等。 解决方案 使用模式为 rb 或 wb 的 open() 函数来读取或写入二进制数据。比如: # Read the entire file as a single byte string with open('somefile.bin', 'rb') as f: data = f.read() # Write binary data to
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 改善这个问题 我正在开发一个名为LMCT(Let Me Copy That)的应用程序,它是用Java编程的,我只需要知道如何从Java刻录到DVD / CD。 任何示例,欢迎使用API或链接。 问题答案: 我已经使用COM4J和IMAP
问题内容: 下面的Go代码读取10,000条记录的CSV(时间戳和浮点数),对数据进行一些操作,然后将原始值以及的附加列写入到另一个CSV中。但是,它的运行速度非常慢(例如,数小时,但大部分时间是),我很好奇我可以处理的CSV读取/写入是否效率低下。 我正在寻求帮助,以使此CSV读/写模板代码尽快。对于此问题的范围,我们不必担心该方法。 问题答案: 您先将文件加载到内存中,然后再对其进行处理,这对