惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Cisco Talos Blog
Cisco Talos Blog
C
Check Point Blog
博客园_首页
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
S
Security @ Cisco Blogs
L
LINUX DO - 最新话题
博客园 - 司徒正美
P
Privacy International News Feed
G
Google Developers Blog
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Scott Helme
Scott Helme
K
Kaspersky official blog
I
InfoQ
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Webroot Blog
Webroot Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Microsoft Azure Blog
Microsoft Azure Blog
Spread Privacy
Spread Privacy
量子位
H
Hacker News: Front Page
Simon Willison's Weblog
Simon Willison's Weblog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
SecWiki News
SecWiki News
S
Security Affairs
Latest news
Latest news
人人都是产品经理
人人都是产品经理
C
CERT Recently Published Vulnerability Notes
S
Security Archives - TechRepublic
V
Visual Studio Blog
T
Troy Hunt's Blog
S
Secure Thoughts
F
Fortinet All Blogs
V
V2EX
The Register - Security
The Register - Security
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园 - slaughter

java api下载网站 国外好的软件测试网站 watir,ruby版本查看方法 - slaughter - 博客园 Watir隐藏IE运行的方法 Ruby对MS Access的操作 Eclipse下安装RDT (转)什么是Unicode?什么是UTF-8?(1) Ruby的库路径 - slaughter - 博客园 ruby下snmp-trap发包实例 - slaughter - 博客园 Ruby对于串口的设置实例 - slaughter - 博客园 职业选择(转) ruby编码中碰到的一个诡异问题 - slaughter - 博客园 在Java中操纵UDP(转) 在Java中使用UDP协议编程的相关类(转) 终于给宝宝确定了名字 RFT的对象识别技术 Ruby设置IE不可见 VC对EXCEL操作 Ruby转exe方法(转)
java读写文件(转)
slaughter · 2008-05-29 · via 博客园 - slaughter

Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点。

  一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在OutputStream 中我们有 FileOutputStream 这个对象。

  用FileInputStream 来读取数据的常用方法是:FileInputStream fstream = new FileInputStream(args[0]);DataInputStream in = new DataInputStream(fstream);

  用 in.readLine() 来得到数据,然后用 in.close() 关闭输入流。完整代码见 Example 1。

  用FileOutputStream 来写入数据的常用方法是:FileOutputStream out out = new FileOutputStream(myfile.txt);PrintStream p = new PrintStream( out );

  用 p.println() 来写入数据,然后用 p.close() 关闭输入。完整代码见 Example 2。

  二.在 JDK 1.1中,支持两个新的对象 Reader & Writer, 它们只能用来对文本文件进行操作,而JDK1.1中的 InputStream & OutputStream 可以对文本文件或二进制文件进行操作。

  用FileReader 来读取文件的常用方法是:FileReader fr = new FileReader(mydata.txt);BufferedReader br = new BufferedReader(fr);

  用 br.readLing() 来读出数据,然后用br.close() 关闭缓存,用fr.close() 关闭文件。完整代码见 Example 3。

  用 FileWriter 来写入文件的常用方法是:FileWriter fw = new FileWriter(mydata.txt);PrintWriter out = new PrintWriter(fw);

  在用out.print 或 out.println 来往文件中写入数据,out.print 和 out.println的唯一区别是后者写入数据或会自动开一新行。写完后要记得 用out.close() 关闭输出,用fw.close() 关闭文件。完整代码见 Example 4。

  Example 1:// FileInputDemo

  // Demonstrates FileInputStream and DataInputStream

  import java.io.*;

  class FileInputDemo {

  public static void main(String args[]) {

  // args.length is equivalent to argc in C

  if (args.length == 1) {

  try {

  // Open the file that is the first command line parameter

  FileInputStream fstream = new FileInputStream(args[0]);

  // Convert our input stream to a DataInputStream

  DataInputStream in = new DataInputStream(fstream);

  // Continue to read lines while there are still some left to read

  while (in.available() !=0) {

  // Print file line to screen

  System.out.println (in.readLine());

  }

  in.close();

  } catch (Exception e) {

  System.err.println(File input error);

  }

  }

  else

  System.out.println(Invalid parameters);

  }

  }

  Example 2:

  // FileOutputDemo

  // Demonstration of FileOutputStream and PrintStream classes

  import java.io.*;

  class FileOutputDemo

  {

  public static void main(String args[]) {

  FileOutputStream out; // declare a file output object

  PrintStream p; // declare a print stream object

  try {

  // connected to myfile.txt

  out = new FileOutputStream(myfile.txt);

  // Connect print stream to the output stream

  p = new PrintStream( out );

  p.println (This is written to a file);

  p.close();

  } catch (Exception e) {

  System.err.println (Error writing to file);

  }

  }

  }

  Example 3:

  // FileReadTest.java

  // User FileReader in JDK1.1 to read a file

  import java.io.*;

  class FileReadTest {

  public static void main (String[] args) {

  FileReadTest t = new FileReadTest();

  t.readMyFile();

  }

  void readMyFile() {

  String record = null;

  int recCount = 0;

  try {

  FileReader fr = new FileReader(mydata.txt);

  BufferedReader br = new BufferedReader(fr);

  record = new String();

  while ((record = br.readLine()) != null) {

  recCount++;

  System.out.println(recCount + : + record);

  }

  br.close();

  fr.close();

  } catch (IOException e) {

  System.out.println(Uh oh, got an IOException error!);

  e.printStackTrace();

  }

  }

  }

  Example 4:

  // FileWriteTest.java

  // User FileWriter in JDK1.1 to writer a file

  import java.io.*;

  class FileWriteTest {

  public static void main (String[] args) {

  FileWriteTest t = new FileWriteTest();

  t.WriteMyFile();

  }

  void WriteMyFile() {

  try {

  FileWriter fw = new FileWriter(mydata.txt);

  PrintWriter out = new PrintWriter(fw);

  out.print(“hi,this will be wirte into the file!”);

  out.close();

  fw.close();

  } catch (IOException e) {

  System.out.println(Uh oh, got an IOException error!);

  e.printStackTrace();

  }

  }

  }