diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-05 05:12:32 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-05 05:12:32 +0000 |
commit | 6f35239027aa2efad5fbbfe41ecad0923003112b (patch) | |
tree | f8cbc802a806455c5fdfeab7f696c63641b9f9f5 /README.md | |
parent | 68591711a9034281d5fe11fc7a30e535bbce125c (diff) | |
parent | 089373269bfaa2212f2008ac7bda148cdd6945c9 (diff) | |
download | jimfs-6f35239027aa2efad5fbbfe41ecad0923003112b.tar.gz |
Initial merge with upstream am: cef92d673c am: c5f71e95df am: e50b3b7561 am: c47b5481de am: 089373269b
Change-Id: I00caf048ac2f81928690feb6ce0c26274339e84a
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..d975958 --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +Jimfs +===== + +Jimfs is an in-memory file system for Java 7 and above, implementing the +[java.nio.file](http://docs.oracle.com/javase/7/docs/api/java/nio/file/package-summary.html) +abstract file system APIs. + +[![Build Status](https://travis-ci.org/google/jimfs.svg?branch=master)](https://travis-ci.org/google/jimfs) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.google.jimfs/jimfs/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.google.jimfs/jimfs) + +Getting started +--------------- + +The latest release is [1.1](https://github.com/google/jimfs/releases/tag/v1.1). + +It is available in Maven Central as +[com.google.jimfs:jimfs:1.1](http://search.maven.org/#artifactdetails%7Ccom.google.jimfs%7Cjimfs%7C1.1%7Cjar): + +```xml +<dependency> + <groupId>com.google.jimfs</groupId> + <artifactId>jimfs</artifactId> + <version>1.1</version> +</dependency> +``` + +Basic use +--------- + +The simplest way to use Jimfs is to just get a new `FileSystem` instance from the `Jimfs` class and +start using it: + +```java +import com.google.common.jimfs.Configuration; +import com.google.common.jimfs.Jimfs; +... + +// For a simple file system with Unix-style paths and behavior: +FileSystem fs = Jimfs.newFileSystem(Configuration.unix()); +Path foo = fs.getPath("/foo"); +Files.createDirectory(foo); + +Path hello = foo.resolve("hello.txt"); // /foo/hello.txt +Files.write(hello, ImmutableList.of("hello world"), StandardCharsets.UTF_8); +``` + +What's supported? +----------------- + +Jimfs supports almost all the APIs under `java.nio.file`. It supports: + +- Creating, deleting, moving and copying files and directories. +- Reading and writing files with `FileChannel` or `SeekableByteChannel`, `InputStream`, + `OutputStream`, etc. +- Symbolic links. +- Hard links to regular files. +- `SecureDirectoryStream`, for operations relative to an _open_ directory. +- Glob and regex path filtering with `PathMatcher`. +- Watching for changes to a directory with a `WatchService`. +- File attributes. Built-in attribute views that can be supported include "basic", "owner", + "posix", "unix", "dos", "acl" and "user". Do note, however, that not all attribute views provide + _useful_ attributes. For example, while setting and reading POSIX file permissions is possible + with the "posix" view, those permissions will not actually affect the behavior of the file system. + +Jimfs also supports creating file systems that, for example, use Windows-style paths and (to an +extent) behavior. In general, however, file system behavior is modeled after UNIX and may not +exactly match any particular real file system or platform. + +License +------- + +``` +Copyright 2013 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` |