Question 1. What class and method would you use to read a few pieces of data that are at known positions near the end of a large file?
Answer 1.
Path.newByteChannelreturns an instance ofSeekableByteChannelwhich allows you to read from (or write to) any position in the file.Question 2.When invoking
format, what is the best way to indicate a new line?Answer 2. Use the
%nconversion — the\nescape is not platform independent!Question 3. How would you determine the MIME type of a file?
Answer 3. The
Files.probeContentTypemethod uses the platform's underlying file type detector to evaluate and return the MIME type.
Question 4. What method(s) would you use to determine whether a file is a symbolic link?
Answer 4. You would use the
isSymbolicLinkmethod in theBasicFileAttributesclass. The code might look like this:
Path file=...; boolean isSymbolicLink = Attributes.readBasicFileAttributes(file, LinkOption.NOFOLLOWLINKS).isSymbolicLink();In this example, the
isSymbolicLinkmethod has been chained to thereadBasicFileAttributesmethod which fetches all basic attributes for aPathinstance.
Exercise 1. Write an example that counts the number of times a particular character, such as
e, appears in a file. The character can be specified at the command line. You can usexanadu.txtas the input file.Answer 1. See
CountLetter.javafor the solution.Exercise 2. The file
datafilebegins with a singlelongthat tells you the offset of a singleintpiece of data within the same file. Write a program that gets theintpiece of data. What is theintdata?Answer 2.
123. SeeFindInt.javafor the solution.