-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFileExamples.java
More file actions
164 lines (127 loc) · 5.6 KB
/
FileExamples.java
File metadata and controls
164 lines (127 loc) · 5.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
package com.nishith.java.files;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
public class FileExamples {
public static void main(String[] args) throws IOException {
// File helps us to create, delete, get details about a file.
File file = new File("FileName.txt");
// Check if the file exists
System.out.println(file.exists());
// If file does not exist creates it and returns true
// If file exists, returns false
System.out.println(file.createNewFile());
// Gets the full path of file
System.out.println(file.getAbsolutePath());
System.out.println(file.isFile());// true
System.out.println(file.isDirectory());// false
// Renaming a file
File fileWithNewName = new File("NewFileName.txt");
file.renameTo(fileWithNewName);
// There is no method file.renameTo("NewFileName.txt");
// A File class in Java represents a file and directory.
File directory = new File("src/com/rithus");
// prints full directory path
System.out.println(directory.getAbsolutePath());
System.out.println(directory.isDirectory());// true
File fileInDir = new File(directory, "NewFileInDirectory.txt");
// This does not create the actual file.
// Actual file is created when we invoke createNewFile method
System.out.println(fileInDir.createNewFile()); // true - First Time
// Prints the files and directories present in the folder
System.out.println(Arrays.toString(directory.list()));
// Creating a directory
File newDirectory = new File("newfolder");
System.out.println(newDirectory.mkdir());// true - First Time
// Creating a file in a new directory
File notExistingDirectory = new File("notexisting");
File newFile = new File(notExistingDirectory, "newFile");
// Will throw Exception if uncommented: No such file or directory
// newFile.createNewFile();
System.out.println(newDirectory.mkdir());// true - First Time
// Implementations of Writer and Reader abstract classes help us
// to write and read (content of) files.
// Writer methods - flush, close, append (text)
// Reader methods - read, close (NO FLUSH)
// Writer implementations - FileWriter,BufferedWriter,PrintWriter
// Reader implementations - FileReader,BufferedReader
// Write a string to a file using FileWriter
// FileWriter helps to write stuff into the file
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("How are you doing?");
// Always flush before close. Writing to file uses Buffering.
fileWriter.flush();
fileWriter.close();
FileReader fileReader = new FileReader(file);
char[] temp = new char[25];
// Read from file using FileReader
// fileReader reads entire file and stores it into temp
System.out.println(fileReader.read(temp));// 18 - No of characters Read
// from file
System.out.println(Arrays.toString(temp));// output below
// [H, o, w, , a, r, e, , y, o, u, , d, o, i, n, g, ?, , , , , , ,
// ]
fileReader.close();// Always close anything you opened :)
// FileWriter Constructors
// can accept file(File) or the path to file (String) as argument
// When a writer object is created, it creates the file,
// if it does not exist
FileWriter fileWriter2 = new FileWriter("FileName.txt");
fileWriter2.write("How are you doing Buddy?");
// Always flush before close. Writing to file uses Buffering.
fileWriter2.flush();
fileWriter2.close();
// FileReader Constructors
// can accept file(File) or the path to file (String) as argument
FileReader fileReader2 = new FileReader("FileName.txt");
System.out.println(fileReader2.read(temp));// 24
System.out.println(Arrays.toString(temp));// output below
// BufferedWriter Constructors only accept another Writer as argument
FileWriter fileWriter3 = new FileWriter("BufferedFileName.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter3);
bufferedWriter.write("How are you doing Buddy?");
bufferedWriter.newLine();
bufferedWriter.write("I'm Doing Fine");
// Always flush before close. Writing to file uses Buffering.
bufferedWriter.flush();
bufferedWriter.close();
fileWriter3.close();
// BufferedReader helps to read the file line by line
// BufferedReader Constructors only accept another Reader as argument
FileReader fileReader3 = new FileReader("BufferedFileName.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader3);
String line;
// readLine returns null when reading the file is completed.
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
// PrintWriter helps writing to file in a formatted way.
// PrintWriter constructor supports varied kinds of arguments
// File
// String
// Writer
PrintWriter printWriter = new PrintWriter("PrintWriterFileName.txt");
// Other than write function you can use format, printf, print, println
// functions to write to PrintWriter file.
// writes " My Name" to the file
printWriter.format("%15s", "My Name");
printWriter.println(); // New Line
printWriter.println("Some Text");
// writes "Formatted Number : 4.50000" to the file
printWriter.printf("Formatted Number : %5.5f", 4.5);
printWriter.flush();// Always flush a writer
printWriter.close();
FileReader fileReader4 = new FileReader("PrintWriterFileName.txt");
BufferedReader bufferedReader2 = new BufferedReader(fileReader4);
String line2;
// readLine returns null when reading the file is completed.
while ((line2 = bufferedReader2.readLine()) != null) {
System.out.println(line2);
}
}
}