Java 文件输出流 Windows/Linux
Java FileOutputStream Windows/Linux
我收到了这个代码:
OutputStream output = new FileOutputStream("res/" + new java.util.Date().toString() +".properties");
我在大学(笔记本电脑 - Ubunutu)和家里(台式机 - Windows)编写我的代码。
我将 Eclipse 项目与 github 和 EGit 同步。
现在我无法在我的 Windows 机器上执行这行代码,但它仍在我的笔记本电脑上运行..完全相同的代码..
获取错误:
java.io.FileNotFoundException: res\Thu Jan 08 15:54:39 CET 2015.properties (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
并且:at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Sourc
at java.io.FileOutputStream.<init>(Unknown Source)
Windows 不允许在文件名中使用冒号“:”。
我认为问题在于 :
不是 Windows 中路径名的有效字符。
来自 MSDN 文章“Naming Files, Paths, and Namespaces”:
[...]
Use any character in the current code page for a name, including
Unicode characters and characters in the extended character set
(128–255), except for the following:
- The following reserved characters:
- < (less than)
- > (greater than)
- : (colon)
- " (double quote)
- / (forward slash)
- \ (backslash)
- | (vertical bar or pipe)
- ? (question mark)
- * (asterisk)
[...]
new java.util.Date().toString()
将按以下格式给出日期
Thu Jan 08 20:51:01 IST 2015
它包含:
该字符不允许在 windows 中的名称中使用。但您可以在 linux
中使用它们
因此,如果你想在两个平台上使用相同的东西,你必须改变日期的格式可能使用 SimpleDateFormat
或其他东西
例如
SimpleDateFormat sd = new SimpleDateFormat("YY-MM-DD");
System.out.println(sd.format(new Date()));
我收到了这个代码:
OutputStream output = new FileOutputStream("res/" + new java.util.Date().toString() +".properties");
我在大学(笔记本电脑 - Ubunutu)和家里(台式机 - Windows)编写我的代码。 我将 Eclipse 项目与 github 和 EGit 同步。
现在我无法在我的 Windows 机器上执行这行代码,但它仍在我的笔记本电脑上运行..完全相同的代码..
获取错误:
java.io.FileNotFoundException: res\Thu Jan 08 15:54:39 CET 2015.properties (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
并且:at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Sourc
at java.io.FileOutputStream.<init>(Unknown Source)
Windows 不允许在文件名中使用冒号“:”。
我认为问题在于 :
不是 Windows 中路径名的有效字符。
来自 MSDN 文章“Naming Files, Paths, and Namespaces”:
[...]
Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following:
- The following reserved characters:
- < (less than)
- > (greater than)
- : (colon)
- " (double quote)
- / (forward slash)
- \ (backslash)
- | (vertical bar or pipe)
- ? (question mark)
- * (asterisk)
[...]
new java.util.Date().toString()
将按以下格式给出日期
Thu Jan 08 20:51:01 IST 2015
它包含: 该字符不允许在 windows 中的名称中使用。但您可以在 linux
中使用它们因此,如果你想在两个平台上使用相同的东西,你必须改变日期的格式可能使用 SimpleDateFormat
或其他东西
例如
SimpleDateFormat sd = new SimpleDateFormat("YY-MM-DD");
System.out.println(sd.format(new Date()));