我想写一个新的文件FileWriter.我这样使用它:
FileWriter newJsp = new FileWriter("C:\\user\Desktop\dir1\dir2\filename.txt");
Run Code Online (Sandbox Code Playgroud)
现在dir1和dir2目前都不存在.我希望Java自动创建它们,如果它们还没有存在的话.实际上Java应该设置整个文件路径(如果尚未存在).
我怎样才能做到这一点?
我目前正在使用FileWriter创建和写入文件.有没有什么方法可以每次都写入同一个文件而不删除其中的内容?
fout = new FileWriter(
"Distribution_" + Double.toString(_lowerBound) + "_" + Double.toString(_highBound) + ".txt");
fileout = new PrintWriter(fout,true);
fileout.print(now.getTime().toString() + ", " + weight + ","+ count +"\n");
fileout.close();
Run Code Online (Sandbox Code Playgroud) 我做了一个小文件作者:
try {
FileWriter writer = new FileWriter(new File("file.txt"), false);
String sizeX = jTextField1.getText();
String sizeY = jTextField2.getText();
writer.write(sizeX);
writer.write(sizeY);
writer.flush();
writer.close();
} catch (IOException ex) {}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个新行,就像你可以通常使用"\n"一样,但它似乎不起作用......
有谁知道如何制作这样一条新线?
提前致谢!:)
Java中的PrintWriter和FileWriter是否相同,无论使用哪一个?到目前为止,我使用了两者,因为他们的结果是一样的.是否有一些特殊情况下更喜欢一个而不是另一个?
public static void main(String[] args) {
File fpw = new File("printwriter.txt");
File fwp = new File("filewriter.txt");
try {
PrintWriter pw = new PrintWriter(fpw);
FileWriter fw = new FileWriter(fwp);
pw.write("printwriter text\r\n");
fw.write("filewriter text\r\n");
pw.close();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud) 我写的代码应该覆盖所选文本文件的内容,但它会附加它.我究竟做错了什么?
File fnew=new File("../playlist/"+existingPlaylist.getText()+".txt");
String source = textArea.getText();
System.out.println(source);
FileWriter f2;
try {
f2 = new FileWriter(fnew,false);
f2.write(source);
/*for (int i=0; i<source.length();i++)
{
if(source.charAt(i)=='\n')
f2.append(System.getProperty("line.separator"));
f2.append(source.charAt(i));
}*/
f2.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
编辑
我尝试制作一个新的temp.txt文件并将新内容写入其中,删除此文本文件并将temp.txt重命名为此文件.事实是,删除总是不成功.我不认为我必须为此更改用户权限吗?
此外,我的程序的一部分列出了该目录中的所有文件,因此我猜测它们正在被程序使用,因此无法删除.但为什么不覆盖?
解决了
我最大的"D'哦"时刻!我一直在Eclipse上编译它而不是cmd,这是我执行它的地方.所以我新编译的类转到bin文件夹,通过命令提示符编译的类文件在我的src文件夹中保持不变.我用我的新代码重新编译,它就像一个魅力.
File fold=new File("../playlist/"+existingPlaylist.getText()+".txt");
fold.delete();
File fnew=new File("../playlist/"+existingPlaylist.getText()+".txt");
String source = textArea.getText();
System.out.println(source);
try {
FileWriter f2 = new FileWriter(fnew, false);
f2.write(source);
f2.close();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我有一个问题,在写入文件时,在关闭之前,我们应该包括flush()?? 如果是这样它会做什么呢?不流自动冲洗?编辑:
那么冲洗它实际上做了什么?
对于离线存储数据,WebApp可以使用:
但显然没有文件存储.当然,有一个基于清单的缓存,但它只是一个缓存,不应该用作用户数据存储.
这是否意味着WebApp的用户被迫使用某种云文件存储?
有没有办法在用户的本地机器上保存大文件?或者也许某种方式来选择本地文件夹Web应用程序可用于存储用户数据?
编辑.安全.HTML5已经能够将大部分数据写入用户的本地计算机.如果浏览器提供另一个基于文件的抽象来存储数据,我没有看到任何安全问题.它可以是一些虚拟机,虚拟文件系统等等.
嗯,我想,有可能编写JS文件系统并将其存储为SQL中的blob ...
我无法将数据附加到HDFS中的现有文件中.我希望如果文件存在然后附加一行,如果没有,创建一个名称给定的新文件.
这是我写入HDFS的方法.
if (!file.exists(path)){
file.createNewFile(path);
}
FSDataOutputStream fileOutputStream = file.append(path);
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
br.append("Content: " + content + "\n");
br.close();
Run Code Online (Sandbox Code Playgroud)
实际上这个方法写入HDFS并创建一个文件,但正如我所提到的那样没有追加.
这是我测试我的方法的方法:
RunTimeCalculationHdfsWrite.hdfsWriteFile("RunTimeParserLoaderMapperTest2", "Error message test 2.2", context, null);
Run Code Online (Sandbox Code Playgroud)
第一个参数是文件的名称,第二个参数是消息,另外两个参数不重要.
所以任何人都知道我错过了什么或做错了什么?
我正在尝试编写TIFF IFD,我正在寻找一种简单的方法来执行以下操作(这段代码显然是错误的,但它可以解决我想要的问题):
out.writeChar(12) (bytes 0-1)
out.writeChar(259) (bytes 2-3)
out.writeChar(3) (bytes 4-5)
out.writeInt(1) (bytes 6-9)
out.writeInt(1) (bytes 10-13)
Run Code Online (Sandbox Code Playgroud)
写道:
0c00 0301 0300 0100 0000 0100 0000
我知道如何让写入方法占用正确的字节数(writeInt,writeChar等),但我不知道如何让它以小端编写.谁知道?
好的,我正在学习I/O,我在其中一张幻灯片中找到了以下代码.有谁可以解释为什么需要有FileWrite,BufferedWriter和PrintWriter?我知道BufferedWriter是缓冲输出并将其全部放在一起,但为什么他们会使用FileWriter和PrintWriter?他们几乎没有做同样的错误处理等一点点差异?
还有他们为什么要传递bw给他们PrintWriter?
FileWriter fw = new FileWriter (file);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter outFile = new PrintWriter (bw);
Run Code Online (Sandbox Code Playgroud) filewriter ×10
java ×9
printwriter ×2
directory ×1
endianness ×1
filereader ×1
filesystems ×1
flush ×1
hadoop ×1
hdfs ×1
html5 ×1
io ×1
overwrite ×1
path ×1
stream ×1